equal
deleted
inserted
replaced
34 |
34 |
35 namespace KJS { |
35 namespace KJS { |
36 |
36 |
37 int Parser::sid = 0; |
37 int Parser::sid = 0; |
38 |
38 |
39 static RefPtr<ProgramNode>* progNode; |
39 static RefPtr<ProgramNode>* progNode = 0; |
40 static HashSet<Node*>* nodeCycles; |
40 static HashSet<Node*>* nodeCycles; |
|
41 |
|
42 struct cleanupProgNode { |
|
43 ~cleanupProgNode() { |
|
44 if( progNode ) { |
|
45 delete progNode; |
|
46 progNode=0; |
|
47 } |
|
48 } |
|
49 }; |
|
50 static cleanupProgNode cleanProgNode; |
41 |
51 |
42 void Parser::noteNodeCycle(Node *node) |
52 void Parser::noteNodeCycle(Node *node) |
43 { |
53 { |
44 if (!nodeCycles) |
54 if (!nodeCycles) |
45 nodeCycles = new HashSet<Node*>; |
55 nodeCycles = new HashSet<Node*>; |