summaryrefslogtreecommitdiff
path: root/tikzit/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'tikzit/src/common')
-rw-r--r--tikzit/src/common/Edge.m4
-rw-r--r--tikzit/src/common/GraphChange.m39
-rw-r--r--tikzit/src/common/GraphElementProperty.h4
-rw-r--r--tikzit/src/common/GraphElementProperty.m17
-rw-r--r--tikzit/src/common/Node.m1
-rw-r--r--tikzit/src/common/tikzparser.ym6
6 files changed, 43 insertions, 28 deletions
diff --git a/tikzit/src/common/Edge.m b/tikzit/src/common/Edge.m
index dfc505c..945503f 100644
--- a/tikzit/src/common/Edge.m
+++ b/tikzit/src/common/Edge.m
@@ -640,6 +640,10 @@
}
- (void)dealloc {
+ [source removeObserver:self
+ forKeyPath:@"style"];
+ [target removeObserver:self
+ forKeyPath:@"style"];
[source release];
[target release];
[data release];
diff --git a/tikzit/src/common/GraphChange.m b/tikzit/src/common/GraphChange.m
index cb95332..239ae23 100644
--- a/tikzit/src/common/GraphChange.m
+++ b/tikzit/src/common/GraphChange.m
@@ -35,6 +35,29 @@
return [super init];
}
+- (void)dealloc {
+ [affectedNodes release];
+ [affectedEdges release];
+ [nodeRef release];
+ [edgeRef release];
+ [oldNode release];
+ [nwNode release];
+ [oldEdge release];
+ [nwEdge release];
+ [oldNodeTable release];
+ [nwNodeTable release];
+ [oldEdgeTable release];
+ [nwEdgeTable release];
+ [oldGraphData release];
+ [nwGraphData release];
+ [oldNodeOrder release];
+ [nwNodeOrder release];
+ [oldEdgeOrder release];
+ [nwEdgeOrder release];
+
+ [super dealloc];
+}
+
@synthesize changeType;
@synthesize shiftPoint, horizontal;
@synthesize affectedEdges, affectedNodes;
@@ -115,22 +138,6 @@
return [inverse autorelease];
}
-- (void)dealloc {
- [affectedNodes release];
- [affectedEdges release];
- [nodeRef release];
- [oldNode release];
- [nwNode release];
- [edgeRef release];
- [oldEdge release];
- [oldNodeTable release];
- [nwNodeTable release];
- [oldEdgeTable release];
- [nwEdgeTable release];
-
- [super dealloc];
-}
-
+ (GraphChange*)graphAdditionWithNodes:(NSSet *)ns edges:(NSSet *)es {
GraphChange *gc = [[GraphChange alloc] init];
[gc setChangeType:GraphAddition];
diff --git a/tikzit/src/common/GraphElementProperty.h b/tikzit/src/common/GraphElementProperty.h
index 029e7f3..057cdbb 100644
--- a/tikzit/src/common/GraphElementProperty.h
+++ b/tikzit/src/common/GraphElementProperty.h
@@ -35,8 +35,8 @@
BOOL isKeyMatch;
}
-@property (readwrite,retain) NSString *key;
-@property (readwrite,retain) NSString *value;
+@property (copy) NSString *key;
+@property (copy) NSString *value;
@property (readonly) BOOL isAtom;
@property (readonly) BOOL isKeyMatch;
diff --git a/tikzit/src/common/GraphElementProperty.m b/tikzit/src/common/GraphElementProperty.m
index 5a19ace..3cf6632 100644
--- a/tikzit/src/common/GraphElementProperty.m
+++ b/tikzit/src/common/GraphElementProperty.m
@@ -41,9 +41,7 @@
self = [super init];
if (self) {
[self setKey:n];
- [self setValue:nil];
isAtom = YES;
- isKeyMatch = NO;
}
return self;
}
@@ -53,8 +51,6 @@
if (self) {
[self setKey:k];
[self setValue:v];
- isAtom = NO;
- isKeyMatch = NO;
}
return self;
}
@@ -63,13 +59,17 @@
self = [super init];
if (self) {
[self setKey:k];
- [self setValue:nil];
- isAtom = NO;
isKeyMatch = YES;
}
return self;
}
+- (void) dealloc {
+ [key release];
+ [value release];
+ [super dealloc];
+}
+
- (void)setValue:(NSString *)v {
if (value != v) {
[value release];
@@ -87,11 +87,12 @@
- (void)setKey:(NSString *)k {
- if (k == nil) k = @""; // don't allow nil keys
if (key != k) {
[key release];
- key = [k retain];
+ key = [k copy];
}
+ if (key == nil)
+ key = @""; // don't allow nil keys
}
- (NSString*)key {
diff --git a/tikzit/src/common/Node.m b/tikzit/src/common/Node.m
index e564e5d..8c64b6b 100644
--- a/tikzit/src/common/Node.m
+++ b/tikzit/src/common/Node.m
@@ -53,6 +53,7 @@
[name release];
[style release];
[data release];
+ [label release];
[super dealloc];
}
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;