summaryrefslogtreecommitdiff
path: root/vala/valamemorymanager.vala
diff options
context:
space:
mode:
authorJuerg Billeter <j@bitron.ch>2007-12-15 11:54:52 +0000
committerJürg Billeter <juergbi@src.gnome.org>2007-12-15 11:54:52 +0000
commitb261df87989167862fb63387d4b07dfd923e322d (patch)
treeeb65ef38c59b45f83e7de503376564155e89fc3e /vala/valamemorymanager.vala
parent415d9160d8dfd115a5dc747f65aad00cfcf6907b (diff)
downloadvala-b261df87989167862fb63387d4b07dfd923e322d.tar.gz
update to be compatible with new pointer types
2007-12-15 Juerg Billeter <j@bitron.ch> * gee/hashmap.vala, gee/hashset.vala: update to be compatible with new pointer types * vala/parser.y, vala/vala.h, vala/valaclass.vala, vala/valadatatype.vala, vala/valamemorymanager.vala, vala/valanulltype.vala, vala/valapointertype.vala, vala/valasemanticanalyzer.vala, vala/valasymbolresolver.vala, vala/valavoidtype.vala, gobject/valaccodegenerator.vala, gobject/valaccodegeneratormethod.vala: use PointerType svn path=/trunk/; revision=774
Diffstat (limited to 'vala/valamemorymanager.vala')
-rw-r--r--vala/valamemorymanager.vala40
1 files changed, 24 insertions, 16 deletions
diff --git a/vala/valamemorymanager.vala b/vala/valamemorymanager.vala
index 21fdf311e..0af9c05b6 100644
--- a/vala/valamemorymanager.vala
+++ b/vala/valamemorymanager.vala
@@ -78,10 +78,12 @@ public class Vala.MemoryManager : CodeVisitor {
public override void visit_field (Field! f) {
if (f.initializer != null) {
- if (f.type_reference.takes_ownership) {
- visit_possibly_missing_copy_expression (f.initializer);
- } else {
- visit_possibly_leaked_expression (f.initializer);
+ if (!(f.type_reference is PointerType)) {
+ if (f.type_reference.takes_ownership) {
+ visit_possibly_missing_copy_expression (f.initializer);
+ } else {
+ visit_possibly_leaked_expression (f.initializer);
+ }
}
}
}
@@ -129,10 +131,12 @@ public class Vala.MemoryManager : CodeVisitor {
decl.accept_children (this);
if (decl.initializer != null) {
- if (decl.type_reference.takes_ownership) {
- visit_possibly_missing_copy_expression (decl.initializer);
- } else {
- visit_possibly_leaked_expression (decl.initializer);
+ if (!(decl.type_reference is PointerType)) {
+ if (decl.type_reference.takes_ownership) {
+ visit_possibly_missing_copy_expression (decl.initializer);
+ } else {
+ visit_possibly_leaked_expression (decl.initializer);
+ }
}
}
}
@@ -160,10 +164,12 @@ public class Vala.MemoryManager : CodeVisitor {
if (current_symbol is Method) {
var m = (Method) current_symbol;
- if (m.return_type.transfers_ownership) {
- visit_possibly_missing_copy_expression (stmt.return_expression);
- } else {
- visit_possibly_leaked_expression (stmt.return_expression);
+ if (!(m.return_type is PointerType)) {
+ if (m.return_type.transfers_ownership) {
+ visit_possibly_missing_copy_expression (stmt.return_expression);
+ } else {
+ visit_possibly_leaked_expression (stmt.return_expression);
+ }
}
} else {
/* property get accessor */
@@ -287,10 +293,12 @@ public class Vala.MemoryManager : CodeVisitor {
if (a.left is PointerIndirection || a.left.symbol_reference is Signal) {
} else {
- if (a.left.static_type.takes_ownership) {
- visit_possibly_missing_copy_expression (a.right);
- } else {
- visit_possibly_leaked_expression (a.right);
+ if (!(a.left.static_type is PointerType)) {
+ if (a.left.static_type.takes_ownership) {
+ visit_possibly_missing_copy_expression (a.right);
+ } else {
+ visit_possibly_leaked_expression (a.right);
+ }
}
}
}