2 typedef long long int64;
3 typedef unsigned long long uint64;
7 #elif defined(__TINYC__)
9 #define __builtin_va_list va_list
10 #define __builtin_va_start va_start
11 #define __builtin_va_end va_end
13 #define strcasecmp stricmp
14 #define strncasecmp strnicmp
15 #define __declspec(x) __attribute__((x))
19 typedef long long int64;
20 typedef unsigned long long uint64;
22 typedef __int64 int64;
23 typedef unsigned __int64 uint64;
26 #define __ENDIAN_PAD(x) (8 - (x))
28 #define __ENDIAN_PAD(x) 0
32 typedef unsigned long long int uintptr_t;
33 typedef long long int intptr_t;
35 typedef unsigned int uintptr_t;
41 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
43 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
45 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
47 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
49 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
51 struct __ecereNameSpace__ecere__sys__BTNode;
53 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
55 struct __ecereNameSpace__ecere__sys__BinaryTree
57 struct __ecereNameSpace__ecere__sys__BTNode * root;
59 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
60 void (* FreeKey)(void * key);
61 } __attribute__ ((gcc_struct));
63 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
65 struct __ecereNameSpace__ecere__sys__OldList
72 } __attribute__ ((gcc_struct));
74 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
76 struct __ecereNameSpace__ecere__com__Class
78 struct __ecereNameSpace__ecere__com__Class * prev;
79 struct __ecereNameSpace__ecere__com__Class * next;
85 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
86 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
89 struct __ecereNameSpace__ecere__com__Class * base;
90 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
91 struct __ecereNameSpace__ecere__sys__BinaryTree members;
92 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
93 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
94 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
95 struct __ecereNameSpace__ecere__sys__OldList derivatives;
99 struct __ecereNameSpace__ecere__com__Instance * module;
100 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
101 char * dataTypeString;
102 struct __ecereNameSpace__ecere__com__Instance * dataType;
104 int defaultAlignment;
105 void (* Initialize)();
107 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
108 char * designerClass;
109 unsigned int noExpansion;
110 char * defaultProperty;
111 unsigned int comRedefinition;
113 unsigned int isRemote;
114 unsigned int internalDecl;
116 unsigned int computeSize;
118 int destructionWatchOffset;
120 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
121 int inheritanceAccess;
124 struct __ecereNameSpace__ecere__sys__OldList conversions;
125 struct __ecereNameSpace__ecere__sys__OldList templateParams;
126 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
127 struct __ecereNameSpace__ecere__com__Class * templateClass;
128 struct __ecereNameSpace__ecere__sys__OldList templatized;
130 } __attribute__ ((gcc_struct));
132 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name);
134 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
136 struct __ecereNameSpace__ecere__com__Instance
139 struct __ecereNameSpace__ecere__com__Class * _class;
141 } __attribute__ ((gcc_struct));
143 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
145 struct __ecereNameSpace__ecere__com__Property
147 struct __ecereNameSpace__ecere__com__Property * prev;
148 struct __ecereNameSpace__ecere__com__Property * next;
150 unsigned int isProperty;
153 struct __ecereNameSpace__ecere__com__Class * _class;
154 char * dataTypeString;
155 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
156 struct __ecereNameSpace__ecere__com__Instance * dataType;
159 unsigned int (* IsSet)();
163 unsigned int conversion;
164 unsigned int watcherOffset;
166 unsigned int compiled;
167 unsigned int selfWatchable;
168 unsigned int isWatchable;
169 } __attribute__ ((gcc_struct));
171 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
173 struct __ecereNameSpace__ecere__com__DataMember
175 struct __ecereNameSpace__ecere__com__DataMember * prev;
176 struct __ecereNameSpace__ecere__com__DataMember * next;
178 unsigned int isProperty;
181 struct __ecereNameSpace__ecere__com__Class * _class;
182 char * dataTypeString;
183 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
184 struct __ecereNameSpace__ecere__com__Instance * dataType;
188 struct __ecereNameSpace__ecere__sys__OldList members;
189 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
192 } __attribute__ ((gcc_struct));
194 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
196 struct __ecereNameSpace__ecere__com__Method
199 struct __ecereNameSpace__ecere__com__Method * parent;
200 struct __ecereNameSpace__ecere__com__Method * left;
201 struct __ecereNameSpace__ecere__com__Method * right;
206 struct __ecereNameSpace__ecere__com__Class * _class;
208 char * dataTypeString;
209 struct __ecereNameSpace__ecere__com__Instance * dataType;
211 } __attribute__ ((gcc_struct));
213 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
215 struct __ecereNameSpace__ecere__com__SerialBuffer
217 unsigned char * _buffer;
221 } __attribute__ ((gcc_struct));
223 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
225 struct __ecereNameSpace__ecere__com__DataValue
240 } __attribute__ ((gcc_struct));
241 } __attribute__ ((gcc_struct));
243 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
245 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
251 char * dataTypeString;
252 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
253 } __attribute__ ((gcc_struct));
254 struct __ecereNameSpace__ecere__com__DataValue expression;
260 struct __ecereNameSpace__ecere__com__DataMember * member;
261 struct __ecereNameSpace__ecere__com__Property * prop;
262 struct __ecereNameSpace__ecere__com__Method * method;
263 } __attribute__ ((gcc_struct));
264 } __attribute__ ((gcc_struct));
265 } __attribute__ ((gcc_struct));
266 } __attribute__ ((gcc_struct));
268 extern int __ecereVMethodID_class_OnCompare;
270 extern int __ecereVMethodID_class_OnCopy;
272 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_prev, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev;
274 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_next, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next;
276 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_count, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count;
278 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_depthProp, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp;
280 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_balanceFactor, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor;
282 struct __ecereNameSpace__ecere__com__AVLNode
284 struct __ecereNameSpace__ecere__com__AVLNode * parent, * left, * right;
287 } __attribute__ ((gcc_struct));
289 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AVLNode;
291 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(struct __ecereNameSpace__ecere__com__AVLNode * this);
293 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_maximum, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum;
295 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev(struct __ecereNameSpace__ecere__com__AVLNode * this)
298 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(this->left);
301 if(this->parent && this == this->parent->right)
309 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(struct __ecereNameSpace__ecere__com__AVLNode * this);
311 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_minimum, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum;
313 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next(struct __ecereNameSpace__ecere__com__AVLNode * this)
315 struct __ecereNameSpace__ecere__com__AVLNode * right = this->right;
318 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(right);
321 struct __ecereNameSpace__ecere__com__AVLNode * parent = this->parent;
323 if(parent && this == parent->left)
328 return (((void *)0));
331 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(struct __ecereNameSpace__ecere__com__AVLNode * this)
338 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(struct __ecereNameSpace__ecere__com__AVLNode * this)
345 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count(struct __ecereNameSpace__ecere__com__AVLNode * this)
347 return 1 + (this->left ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count(this->left) : 0) + (this->right ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count(this->right) : 0);
350 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(struct __ecereNameSpace__ecere__com__AVLNode * this)
352 int leftDepth = this->left ? (__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(this->left) + 1) : 0;
353 int rightDepth = this->right ? (__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(this->right) + 1) : 0;
355 return ((leftDepth > rightDepth) ? leftDepth : rightDepth);
358 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IteratorPointer;
360 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(struct __ecereNameSpace__ecere__com__AVLNode * this)
363 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(this->left);
365 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(this->right);
366 ((this ? (__ecereClass___ecereNameSpace__ecere__com__AVLNode->Destructor ? __ecereClass___ecereNameSpace__ecere__com__AVLNode->Destructor(this) : 0, __ecereClass___ecereNameSpace__ecere__com__IteratorPointer->Destructor ? __ecereClass___ecereNameSpace__ecere__com__IteratorPointer->Destructor(this) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(this)) : 0), this = 0);
369 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uint64;
371 unsigned int __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Add(struct __ecereNameSpace__ecere__com__AVLNode * this, struct __ecereNameSpace__ecere__com__Class * Tclass, struct __ecereNameSpace__ecere__com__AVLNode * node)
373 uint64 newKey = node->key;
376 Tclass = __ecereClass_uint64;
379 int result = Tclass->_vTbl[__ecereVMethodID_class_OnCompare](Tclass, (Tclass->type == 1000 || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1) ? (((unsigned char *)&node->key) + __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize)) : (void *)*(uint64 *)(&node->key), (Tclass->type == 1000 || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1) ? (((unsigned char *)&this->key) + __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize)) : (void *)*(uint64 *)(&this->key));
395 struct __ecereNameSpace__ecere__com__AVLNode * n;
397 for(n = this; n; n = n->parent)
399 int __simpleStruct0, __simpleStruct1;
400 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
402 if(newDepth == n->depth)
420 struct __ecereNameSpace__ecere__com__AVLNode * n;
422 for(n = this; n; n = n->parent)
424 int __simpleStruct0, __simpleStruct1;
425 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
427 if(newDepth == n->depth)
438 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Find(struct __ecereNameSpace__ecere__com__AVLNode * this, struct __ecereNameSpace__ecere__com__Class * Tclass, uint64 key)
442 int result = Tclass->_vTbl[__ecereVMethodID_class_OnCompare](Tclass, (Tclass->type == 1000 || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3) ? (((unsigned char *)&key) + __ENDIAN_PAD(Tclass->typeSize)) : (void *)key, (Tclass->type == 1000 || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1) ? (((unsigned char *)&this->key) + __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize)) : (void *)*(uint64 *)(&this->key));
454 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(struct __ecereNameSpace__ecere__com__AVLNode * this, uint64 key)
456 struct __ecereNameSpace__ecere__com__AVLNode * result = (((void *)0));
460 if(!result && this->left)
461 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(this->left, key);
462 if(!result && this->right)
463 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(this->right, key);
467 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwap(struct __ecereNameSpace__ecere__com__AVLNode * this, struct __ecereNameSpace__ecere__com__AVLNode * swap)
471 swap->left->parent = swap->parent;
472 if(swap == swap->parent->left)
473 swap->parent->left = swap->left;
474 else if(swap == swap->parent->right)
475 swap->parent->right = swap->left;
476 swap->left = (((void *)0));
480 swap->right->parent = swap->parent;
481 if(swap == swap->parent->left)
482 swap->parent->left = swap->right;
483 else if(swap == swap->parent->right)
484 swap->parent->right = swap->right;
485 swap->right = (((void *)0));
487 if(swap == swap->parent->left)
488 swap->parent->left = (((void *)0));
489 else if(swap == swap->parent->right)
490 swap->parent->right = (((void *)0));
492 struct __ecereNameSpace__ecere__com__AVLNode * n;
494 for(n = swap->parent; n; n = n->parent)
496 int __simpleStruct0, __simpleStruct1;
497 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
499 if(newDepth == n->depth)
506 swap->left = this->left;
508 this->left->parent = swap;
509 swap->right = this->right;
511 this->right->parent = swap;
512 swap->parent = this->parent;
513 this->left = (((void *)0));
514 this->right = (((void *)0));
517 if(this == this->parent->left)
518 this->parent->left = swap;
519 else if(this == this->parent->right)
520 this->parent->right = swap;
524 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance();
526 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwapLeft(struct __ecereNameSpace__ecere__com__AVLNode * this)
528 struct __ecereNameSpace__ecere__com__AVLNode * swap = this->left ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(this->left) : this->right;
529 struct __ecereNameSpace__ecere__com__AVLNode * swapParent = (((void *)0));
533 swapParent = swap->parent;
534 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwap(this, swap);
538 if(this == this->parent->left)
539 this->parent->left = (((void *)0));
540 else if(this == this->parent->right)
541 this->parent->right = (((void *)0));
544 struct __ecereNameSpace__ecere__com__AVLNode * n;
546 for(n = swap ? swap : this->parent; n; n = n->parent)
548 int __simpleStruct0, __simpleStruct1;
549 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
551 if(newDepth == n->depth && n != swap)
556 if(swapParent && swapParent != this)
557 return __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swapParent);
559 return __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swap);
560 else if(this->parent)
561 return __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(this->parent);
563 return (((void *)0));
566 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwapRight(struct __ecereNameSpace__ecere__com__AVLNode * this)
568 struct __ecereNameSpace__ecere__com__AVLNode * result;
569 struct __ecereNameSpace__ecere__com__AVLNode * swap = this->right ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(this->right) : this->left;
570 struct __ecereNameSpace__ecere__com__AVLNode * swapParent = (((void *)0));
574 swapParent = swap->parent;
575 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwap(this, swap);
579 if(this == this->parent->left)
580 this->parent->left = (((void *)0));
581 else if(this == this->parent->right)
582 this->parent->right = (((void *)0));
585 struct __ecereNameSpace__ecere__com__AVLNode * n;
587 for(n = swap ? swap : this->parent; n; n = n->parent)
589 int __simpleStruct0, __simpleStruct1;
590 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
592 if(newDepth == n->depth && n != swap)
597 if(swapParent && swapParent != this)
598 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swapParent);
600 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swap);
601 else if(this->parent)
602 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(this->parent);
604 result = (((void *)0));
608 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(struct __ecereNameSpace__ecere__com__AVLNode * this)
610 int leftDepth = this->left ? (this->left->depth + 1) : 0;
611 int rightDepth = this->right ? (this->right->depth + 1) : 0;
613 return rightDepth - leftDepth;
616 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateRight();
618 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight();
620 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateLeft();
622 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft();
624 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(struct __ecereNameSpace__ecere__com__AVLNode * this)
628 int factor = __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(this);
632 if(__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(this->left) == 1)
633 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateRight(this);
635 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(this);
639 if(__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(this->right) == -1)
640 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateLeft(this);
642 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(this);
651 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(struct __ecereNameSpace__ecere__com__AVLNode * this)
653 int __simpleStruct2, __simpleStruct3;
654 int __simpleStruct0, __simpleStruct1;
658 if(this == this->parent->left)
659 this->parent->left = this->left;
660 else if(this == this->parent->right)
661 this->parent->right = this->left;
663 this->left->parent = this->parent;
664 this->parent = this->left;
665 this->left = this->parent->right;
667 this->left->parent = this;
668 this->parent->right = this;
669 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
670 this->parent->depth = (__simpleStruct2 = this->parent->left ? (this->parent->left->depth + 1) : 0, __simpleStruct3 = this->parent->right ? (this->parent->right->depth + 1) : 0, (__simpleStruct2 > __simpleStruct3) ? __simpleStruct2 : __simpleStruct3);
672 struct __ecereNameSpace__ecere__com__AVLNode * n;
674 for(n = this->parent->parent; n; n = n->parent)
676 int __simpleStruct0, __simpleStruct1;
677 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
679 if(newDepth == n->depth)
686 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(struct __ecereNameSpace__ecere__com__AVLNode * this)
688 int __simpleStruct2, __simpleStruct3;
689 int __simpleStruct0, __simpleStruct1;
693 if(this == this->parent->right)
694 this->parent->right = this->right;
695 else if(this == this->parent->left)
696 this->parent->left = this->right;
698 this->right->parent = this->parent;
699 this->parent = this->right;
700 this->right = this->parent->left;
702 this->right->parent = this;
703 this->parent->left = this;
704 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
705 this->parent->depth = (__simpleStruct2 = this->parent->left ? (this->parent->left->depth + 1) : 0, __simpleStruct3 = this->parent->right ? (this->parent->right->depth + 1) : 0, (__simpleStruct2 > __simpleStruct3) ? __simpleStruct2 : __simpleStruct3);
707 struct __ecereNameSpace__ecere__com__AVLNode * n;
709 for(n = this->parent->parent; n; n = n->parent)
711 int __simpleStruct0, __simpleStruct1;
712 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
714 if(newDepth == n->depth)
721 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateRight(struct __ecereNameSpace__ecere__com__AVLNode * this)
723 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(this->left);
724 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(this);
727 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateLeft(struct __ecereNameSpace__ecere__com__AVLNode * this)
729 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(this->right);
730 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(this);
733 struct __ecereNameSpace__ecere__com__CustomAVLTree
735 struct __ecereNameSpace__ecere__com__AVLNode * root;
737 } __attribute__ ((gcc_struct));
739 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__CustomAVLTree;
741 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetFirst(struct __ecereNameSpace__ecere__com__Instance * this)
743 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 12) : 0);
745 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root) : (((void *)0)));
748 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetLast(struct __ecereNameSpace__ecere__com__Instance * this)
750 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 12) : 0);
752 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root) : (((void *)0)));
755 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetPrev(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
757 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 12) : 0);
759 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev(((struct __ecereNameSpace__ecere__com__AVLNode *)node));
762 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetNext(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
764 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 12) : 0);
766 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next(((struct __ecereNameSpace__ecere__com__AVLNode *)node));
769 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
771 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 12) : 0);
773 return (struct __ecereNameSpace__ecere__com__AVLNode *)node;
776 unsigned int __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_SetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node, uint64 data)
778 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 12) : 0);
783 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name);
785 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
787 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
789 struct __ecereNameSpace__ecere__com__NameSpace
792 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
793 struct __ecereNameSpace__ecere__com__NameSpace * left;
794 struct __ecereNameSpace__ecere__com__NameSpace * right;
796 struct __ecereNameSpace__ecere__com__NameSpace * parent;
797 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
798 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
799 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
800 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
801 } __attribute__ ((gcc_struct));
803 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
805 struct __ecereNameSpace__ecere__com__Module
807 struct __ecereNameSpace__ecere__com__Instance * application;
808 struct __ecereNameSpace__ecere__sys__OldList classes;
809 struct __ecereNameSpace__ecere__sys__OldList defines;
810 struct __ecereNameSpace__ecere__sys__OldList functions;
811 struct __ecereNameSpace__ecere__sys__OldList modules;
812 struct __ecereNameSpace__ecere__com__Instance * prev;
813 struct __ecereNameSpace__ecere__com__Instance * next;
819 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
820 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
821 } __attribute__ ((gcc_struct));
823 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Add(struct __ecereNameSpace__ecere__com__Instance * this, uint64 node)
825 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 12) : 0);
827 if(!__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root)
828 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root = node;
831 struct __ecereNameSpace__ecere__com__Class * Tclass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass->templateArgs[0].dataTypeClass;
835 Tclass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass->templateArgs[0].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application, ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass->templateArgs[0].dataTypeString);
837 if(__ecereMethod___ecereNameSpace__ecere__com__AVLNode_Add(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root, Tclass, node))
838 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root = (uint64)(__ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(node));
840 return (((void *)0));
842 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->count++;
843 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)node;
846 void __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Remove(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
848 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 12) : 0);
849 struct __ecereNameSpace__ecere__com__AVLNode * parent = ((struct __ecereNameSpace__ecere__com__AVLNode *)node)->parent;
851 if(parent || __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root == (struct __ecereNameSpace__ecere__com__AVLNode *)node)
853 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root = (uint64)(__ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwapRight(((struct __ecereNameSpace__ecere__com__AVLNode *)node)));
854 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->count--;
855 ((struct __ecereNameSpace__ecere__com__AVLNode *)node)->parent = (((void *)0));
859 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove;
861 int __ecereVMethodID_class_OnFree;
863 void __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Delete(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * _item)
865 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 12) : 0);
866 struct __ecereNameSpace__ecere__com__AVLNode * item = (struct __ecereNameSpace__ecere__com__AVLNode *)_item;
868 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__ecereClass___ecereNameSpace__ecere__com__CustomAVLTree->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove])(this, _item);
869 (((void (* )(void * _class, void * data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass, item), item = 0);
872 void __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Free(struct __ecereNameSpace__ecere__com__Instance * this)
874 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 12) : 0);
875 struct __ecereNameSpace__ecere__com__AVLNode * item;
877 while(item = __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root)
879 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__ecereClass___ecereNameSpace__ecere__com__CustomAVLTree->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove])(this, item);
880 (((void (* )(void * _class, void * data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass, item), item = 0);
884 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Find(struct __ecereNameSpace__ecere__com__Instance * this, uint64 value)
886 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 12) : 0);
888 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)value;
891 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char * name, char * baseName, int size, int sizeClass, unsigned int (* )(void * ), void (* )(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
893 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode);
895 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, unsigned int size, unsigned int alignment, int declMode);
897 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_AddProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * dataType, void * setStmt, void * getStmt, int declMode);
899 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter;
901 struct __ecereNameSpace__ecere__com__ClassTemplateParameter;
903 extern struct __ecereNameSpace__ecere__com__ClassTemplateParameter * __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(struct __ecereNameSpace__ecere__com__Class * _class, char * name, int type, void * info, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * defaultArg);
905 extern void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base);
907 void __ecereRegisterModule_CustomAVLTree(struct __ecereNameSpace__ecere__com__Instance * module)
909 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct0 =
913 struct __ecereNameSpace__ecere__com__Class * class;
915 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::AVLNode", "ecere::com::IteratorPointer", sizeof(struct __ecereNameSpace__ecere__com__AVLNode), 0, 0, 0, module, 4, 1);
916 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
917 __ecereClass___ecereNameSpace__ecere__com__AVLNode = class;
918 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", "thisclass Find(ecere::com::Class Tclass, T key)", __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Find, 1);
919 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "__ecerePrivateData0", "byte[16]", 16, 1, 2);
920 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "T", 8, 0, 1);
921 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "prev", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev, 1);
922 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
923 __ecereProp___ecereNameSpace__ecere__com__AVLNode_prev = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev = (void *)0;
924 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "next", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next, 1);
925 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
926 __ecereProp___ecereNameSpace__ecere__com__AVLNode_next = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next = (void *)0;
927 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "minimum", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum, 1);
928 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
929 __ecereProp___ecereNameSpace__ecere__com__AVLNode_minimum = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum = (void *)0;
930 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "maximum", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum, 1);
931 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
932 __ecereProp___ecereNameSpace__ecere__com__AVLNode_maximum = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum = (void *)0;
933 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "count", "int", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count, 1);
934 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
935 __ecereProp___ecereNameSpace__ecere__com__AVLNode_count = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count = (void *)0;
936 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "depthProp", "int", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp, 1);
937 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
938 __ecereProp___ecereNameSpace__ecere__com__AVLNode_depthProp = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp = (void *)0;
939 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "balanceFactor", "int", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor, 2);
940 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
941 __ecereProp___ecereNameSpace__ecere__com__AVLNode_balanceFactor = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor = (void *)0;
942 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "T", 0, 0, (((void *)0)));
943 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
945 class->fixed = (unsigned int)1;
946 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::CustomAVLTree", "ecere::com::Container<BT>", sizeof(struct __ecereNameSpace__ecere__com__CustomAVLTree), 0, 0, 0, module, 4, 1);
947 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
948 __ecereClass___ecereNameSpace__ecere__com__CustomAVLTree = class;
949 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetFirst", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetFirst, 1);
950 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetLast", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetLast, 1);
951 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetPrev", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetPrev, 1);
952 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetNext", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetNext, 1);
953 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetData", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetData, 1);
954 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "SetData", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_SetData, 1);
955 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Add, 1);
956 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Remove, 1);
957 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Find, 1);
958 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Free, 1);
959 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Delete", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Delete, 1);
960 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "root", "BT", 4, 0, 1);
961 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
962 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "BT", 0, "ecere::com::AVLNode", (((void *)0)));
963 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "KT", 0, 0, &__simpleStruct0);
964 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
966 class->fixed = (unsigned int)1;
969 void __ecereUnregisterModule_CustomAVLTree(struct __ecereNameSpace__ecere__com__Instance * module)
972 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev = (void *)0;
973 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next = (void *)0;
974 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum = (void *)0;
975 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum = (void *)0;
976 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count = (void *)0;
977 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp = (void *)0;
978 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor = (void *)0;