diff options
author | Juerg Billeter <j@bitron.ch> | 2007-07-27 15:36:23 +0000 |
---|---|---|
committer | Jürg Billeter <juergbi@src.gnome.org> | 2007-07-27 15:36:23 +0000 |
commit | 5a32f9e2108feff5cdc997fd79303e5f4e9b6175 (patch) | |
tree | bbb31850d9a7279f7e6cfb2561b3a80ef0536b1d /vala/valaobjectcreationexpression.vala | |
parent | b49e7bae77c537a08cf5c5cb1850fc34d859252a (diff) | |
download | vala-5a32f9e2108feff5cdc997fd79303e5f4e9b6175.tar.gz |
add internal copy of libgee and use Gee.ArrayList, Gee.HashMap, and
2007-07-27 Juerg Billeter <j@bitron.ch>
* Makefile.am, README, configure.ac, gee/Makefile.am,
gee/arraylist.vala, gee/collection.vala, gee/hashmap.vala,
gee/hashset.vala, gee/iterable.vala, gee/iterator.vala, gee/list.vala,
gee/map.vala, gee/readonlycollection.vala, gee/readonlylist.vala,
gee/readonlymap.vala, gee/readonlyset.vala, gee/set.vala,
vala/Makefile.am, vala/parser.y, vala/valaarray.vala,
vala/valaarraycreationexpression.vala, vala/valaattribute.vala,
vala/valablock.vala, vala/valacallback.vala, vala/valaclass.vala,
vala/valacodecontext.vala, vala/valacodenode.vala,
vala/valadatatype.vala, vala/valaelementaccess.vala,
vala/valaenum.vala, vala/valaexpression.vala, vala/valafield.vala,
vala/valaformalparameter.vala, vala/valaforstatement.vala,
vala/valainitializerlist.vala, vala/valainstancecast.vala,
vala/valainterface.vala, vala/valainterfacewriter.vala,
vala/valainvocationexpression.vala, vala/valainvokable.vala,
vala/valalambdaexpression.vala,
vala/valalocalvariabledeclaration.vala, vala/valamember.vala,
vala/valamemberaccess.vala, vala/valamemorymanager.vala,
vala/valamethod.vala, vala/valanamespace.vala,
vala/valaobjectcreationexpression.vala, vala/valapointer.vala,
vala/valascope.vala, vala/valasemanticanalyzer.vala,
vala/valasignal.vala, vala/valasourcefile.vala,
vala/valasourcefilecycle.vala, vala/valastruct.vala,
vala/valaswitchsection.vala, vala/valaswitchstatement.vala,
vala/valasymbol.vala, vala/valasymbolresolver.vala,
vala/valatrystatement.vala, vala/valatypeparameter.vala,
vala/valatypereference.vala, vala/valavariabledeclarator.vala,
ccode/Makefile.am, ccode/valaccodeblock.vala,
ccode/valaccodecasestatement.vala,
ccode/valaccodecommaexpression.vala, ccode/valaccodedeclaration.vala,
ccode/valaccodeenum.vala, ccode/valaccodeforstatement.vala,
ccode/valaccodefragment.vala, ccode/valaccodefunction.vala,
ccode/valaccodefunctioncall.vala,
ccode/valaccodefunctiondeclarator.vala,
ccode/valaccodeinitializerlist.vala, ccode/valaccodestruct.vala,
ccode/valaccodeswitchstatement.vala, gobject/Makefile.am,
gobject/valaclassregisterfunction.vala,
gobject/valacodegenerator.vala,
gobject/valacodegeneratorassignment.vala,
gobject/valacodegeneratorclass.vala,
gobject/valacodegeneratorinterface.vala,
gobject/valacodegeneratorinvocationexpression.vala,
gobject/valacodegeneratormemberaccess.vala,
gobject/valacodegeneratormethod.vala,
gobject/valacodegeneratorsignal.vala,
gobject/valacodegeneratorsourcefile.vala,
gobject/valainterfaceregisterfunction.vala, compiler/Makefile.am,
vapi/gio-standalone.vala, vapi/gstreamer-0.10.vala,
vapi/gtk+-2.0.vala, vapigen/Makefile.am, vapigen/valagidlparser.vala:
add internal copy of libgee and use Gee.ArrayList, Gee.HashMap, and
Gee.HashSet instead of GLib.List and GLib.HashTable
svn path=/trunk/; revision=406
Diffstat (limited to 'vala/valaobjectcreationexpression.vala')
-rw-r--r-- | vala/valaobjectcreationexpression.vala | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/vala/valaobjectcreationexpression.vala b/vala/valaobjectcreationexpression.vala index 5adf02228..80a138a3c 100644 --- a/vala/valaobjectcreationexpression.vala +++ b/vala/valaobjectcreationexpression.vala @@ -21,6 +21,7 @@ */ using GLib; +using Gee; /** * Represents an object creation expression in the source code. @@ -43,18 +44,16 @@ public class Vala.ObjectCreationExpression : Expression { */ public MemberAccess member_name { get; set; } - private List<Expression> argument_list; + private Gee.List<Expression> argument_list = new ArrayList<Expression> (); /** * Creates a new object creation expression. * - * @param type object type to create - * @param source reference to source code - * @return newly created object creation expression + * @param member_name object type to create + * @param source_reference reference to source code + * @return newly created object creation expression */ - public ObjectCreationExpression (MemberAccess! name, SourceReference source) { - member_name = name; - source_reference = source; + public ObjectCreationExpression (construct MemberAccess! member_name, construct SourceReference source_reference) { } /** @@ -63,7 +62,7 @@ public class Vala.ObjectCreationExpression : Expression { * @param arg an argument */ public void add_argument (Expression! arg) { - argument_list.append (arg); + argument_list.add (arg); arg.parent_node = this; } @@ -72,8 +71,8 @@ public class Vala.ObjectCreationExpression : Expression { * * @return argument list */ - public List<weak Expression> get_argument_list () { - return argument_list.copy (); + public Collection<Expression> get_argument_list () { + return new ReadOnlyCollection<Expression> (argument_list); } public override void accept (CodeVisitor! visitor) { @@ -87,8 +86,7 @@ public class Vala.ObjectCreationExpression : Expression { visitor.visit_begin_object_creation_expression (this); - // iterate over list copy as list may change in loop body - foreach (Expression arg in argument_list.copy ()) { + foreach (Expression arg in argument_list) { arg.accept (visitor); } @@ -96,14 +94,9 @@ public class Vala.ObjectCreationExpression : Expression { } public override void replace (CodeNode! old_node, CodeNode! new_node) { - weak List<Expression> l = argument_list.find (old_node); - if (l != null) { - if (new_node.parent_node != null) { - return; - } - - argument_list.insert_before (l, new_node); - argument_list.remove_link (l); + int index = argument_list.index_of (old_node); + if (index >= 0 && new_node.parent_node == null) { + argument_list[index] = (Expression) new_node; new_node.parent_node = this; } } |