diff options
author | Juerg Billeter <j@bitron.ch> | 2007-12-15 11:54:52 +0000 |
---|---|---|
committer | Jürg Billeter <juergbi@src.gnome.org> | 2007-12-15 11:54:52 +0000 |
commit | b261df87989167862fb63387d4b07dfd923e322d (patch) | |
tree | eb65ef38c59b45f83e7de503376564155e89fc3e /vala/valamemorymanager.vala | |
parent | 415d9160d8dfd115a5dc747f65aad00cfcf6907b (diff) | |
download | vala-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.vala | 40 |
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); + } } } } |