summaryrefslogtreecommitdiff
path: root/tikzit/src/common/tikzparser.ym
diff options
context:
space:
mode:
authorAlex Merry <dev@randomguy3.me.uk>2013-03-25 18:15:11 +0000
committerAlex Merry <dev@randomguy3.me.uk>2013-03-25 18:36:52 +0000
commit0f969b6ced7e9ebcbe4bc4e17867ff32d67f27bb (patch)
tree9632ffa948332d8636c15537cb19356781a215ec /tikzit/src/common/tikzparser.ym
parent1b83e14b1f5640881deeb03c1d11df5197746b64 (diff)
Catch some memory leaks
Memory usage on Linux no longer shoots up after running the tikz parser a handful of times.
Diffstat (limited to 'tikzit/src/common/tikzparser.ym')
-rw-r--r--tikzit/src/common/tikzparser.ym6
1 files changed, 4 insertions, 2 deletions
diff --git a/tikzit/src/common/tikzparser.ym b/tikzit/src/common/tikzparser.ym
index d0ced92..794b06d 100644
--- a/tikzit/src/common/tikzparser.ym
+++ b/tikzit/src/common/tikzparser.ym
@@ -148,7 +148,7 @@ val: PROPSTRING { $$ = $1; } | DELIMITEDSTRING { $$ = $1; };
nodename: "(" REFSTRING ")" { $$ = $2; };
node: "\\node" optproperties nodename "at" COORD DELIMITEDSTRING ";"
{
- Node *node = [Node node];
+ Node *node = [[Node alloc] init];
if ($2)
[node setData:$2];
[node setName:$3];
@@ -156,6 +156,7 @@ node: "\\node" optproperties nodename "at" COORD DELIMITEDSTRING ";"
[node setLabel:$6];
[assembler addNodeToMap:node];
[[assembler graph] addNode:node];
+ [node release];
};
optanchor: { $$ = nil; } | "." REFSTRING { $$ = $2; };
@@ -178,7 +179,7 @@ optedgenode:
}
edge: "\\draw" optproperties noderef "to" optedgenode optnoderef ";"
{
- Edge *edge = [Edge edge];
+ Edge *edge = [[Edge alloc] init];
if ($2)
[edge setData:$2];
[edge setSource:$3.node];
@@ -193,6 +194,7 @@ edge: "\\draw" optproperties noderef "to" optedgenode optnoderef ";"
}
[edge setAttributesFromData];
[[assembler graph] addEdge:edge];
+ [edge release];
};
ignoreprop: val | val "=" val;