ecere/com/containers; sys/File: Fixed refCount of deserialized containers, Files
[sdk] / compiler / bootstrap / ecere / bootstrap / Container.c
index cec39f9..dd9653c 100644 (file)
@@ -827,6 +827,8 @@ if(this && !b)
 return 1;
 if(b && !this)
 return -1;
+if(!b && !this)
+return 0;
 if((__extension__ ({
 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
 
@@ -1310,6 +1312,7 @@ struct __ecereNameSpace__ecere__com__Class * Dclass = class->templateArgs[2].__a
 uint64 data;
 unsigned int isStruct = Dclass->type == 1;
 
+container->_refCount++;
 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Get(channel, __ecereClass_uint, (void *)&count);
 if(isStruct)
 data = (uint64)(uintptr_t)(__ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (Dclass->structSize)));
@@ -1645,7 +1648,6 @@ __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Free", "void Free(
 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Delete", "void Delete(ecere::com::IteratorPointer i)", __ecereMethod___ecereNameSpace__ecere__com__Container_Delete, 1);
 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Sort", "void Sort(bool ascending)", __ecereMethod___ecereNameSpace__ecere__com__Container_Sort, 1);
 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "TakeOut", "void TakeOut(const D d)", __ecereMethod___ecereNameSpace__ecere__com__Container_TakeOut, 1);
-__ecereNameSpace__ecere__com__eClass_AddMethod(class, "_Sort", "static void _Sort(bool ascending, ecere::com::Container * lists)", __ecereMethod___ecereNameSpace__ecere__com__Container__Sort, 1);
 __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "copySrc", "ecere::com::Container<T>", __ecereProp___ecereNameSpace__ecere__com__Container_Set_copySrc, 0, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
 __ecereProp___ecereNameSpace__ecere__com__Container_copySrc = __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc, __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc = (void *)0;