1 /* Code generated from eC source file: CustomAVLTree.ec */
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
7 #define __runtimePlatform 2
10 typedef long long int64;
11 typedef unsigned long long uint64;
15 #elif defined(__TINYC__)
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
27 typedef long long int64;
28 typedef unsigned long long uint64;
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
34 #define __ENDIAN_PAD(x) (8 - (x))
36 #define __ENDIAN_PAD(x) 0
39 #include <sys/types.h>
41 #if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
47 #define arch_PointerSize sizeof(void *)
48 #define structSize_Instance (_64BIT ? 24 : 12)
49 #define AVLNode_PrivateData (_64BIT ? 32 : 16)
51 #define _XSTR(x) _STR(x)
53 struct __ecereNameSpace__ecere__com__Instance;
55 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
57 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
59 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
61 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
63 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
65 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
67 struct __ecereNameSpace__ecere__sys__BTNode;
69 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
71 struct __ecereNameSpace__ecere__sys__BinaryTree
73 struct __ecereNameSpace__ecere__sys__BTNode * root;
75 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
76 void (* FreeKey)(void * key);
77 } __attribute__ ((gcc_struct));
79 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
81 struct __ecereNameSpace__ecere__sys__OldList
88 } __attribute__ ((gcc_struct));
90 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
92 struct __ecereNameSpace__ecere__com__Class
94 struct __ecereNameSpace__ecere__com__Class * prev;
95 struct __ecereNameSpace__ecere__com__Class * next;
101 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
102 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
105 struct __ecereNameSpace__ecere__com__Class * base;
106 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
107 struct __ecereNameSpace__ecere__sys__BinaryTree members;
108 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
109 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
110 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
111 struct __ecereNameSpace__ecere__sys__OldList derivatives;
115 struct __ecereNameSpace__ecere__com__Instance * module;
116 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
117 const char * dataTypeString;
118 struct __ecereNameSpace__ecere__com__Instance * dataType;
120 int defaultAlignment;
121 void (* Initialize)();
123 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
124 const char * designerClass;
125 unsigned int noExpansion;
126 const char * defaultProperty;
127 unsigned int comRedefinition;
130 unsigned int internalDecl;
132 unsigned int computeSize;
134 int destructionWatchOffset;
136 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
137 int inheritanceAccess;
138 const char * fullName;
140 struct __ecereNameSpace__ecere__sys__OldList conversions;
141 struct __ecereNameSpace__ecere__sys__OldList templateParams;
142 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
143 struct __ecereNameSpace__ecere__com__Class * templateClass;
144 struct __ecereNameSpace__ecere__sys__OldList templatized;
146 unsigned int isInstanceClass;
147 unsigned int byValueSystemClass;
148 } __attribute__ ((gcc_struct));
150 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
152 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
154 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
156 struct __ecereNameSpace__ecere__com__Property
158 struct __ecereNameSpace__ecere__com__Property * prev;
159 struct __ecereNameSpace__ecere__com__Property * next;
161 unsigned int isProperty;
164 struct __ecereNameSpace__ecere__com__Class * _class;
165 const char * dataTypeString;
166 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
167 struct __ecereNameSpace__ecere__com__Instance * dataType;
168 void (* Set)(void * , int);
169 int (* Get)(void * );
170 unsigned int (* IsSet)(void * );
174 unsigned int conversion;
175 unsigned int watcherOffset;
176 const char * category;
177 unsigned int compiled;
178 unsigned int selfWatchable;
179 unsigned int isWatchable;
180 } __attribute__ ((gcc_struct));
182 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
184 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
186 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
188 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
190 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
192 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
194 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
196 struct __ecereNameSpace__ecere__com__Instance
199 struct __ecereNameSpace__ecere__com__Class * _class;
201 } __attribute__ ((gcc_struct));
203 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
205 struct __ecereNameSpace__ecere__com__DataMember
207 struct __ecereNameSpace__ecere__com__DataMember * prev;
208 struct __ecereNameSpace__ecere__com__DataMember * next;
210 unsigned int isProperty;
213 struct __ecereNameSpace__ecere__com__Class * _class;
214 const char * dataTypeString;
215 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
216 struct __ecereNameSpace__ecere__com__Instance * dataType;
220 struct __ecereNameSpace__ecere__sys__OldList members;
221 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
224 } __attribute__ ((gcc_struct));
226 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
228 struct __ecereNameSpace__ecere__com__Method
231 struct __ecereNameSpace__ecere__com__Method * parent;
232 struct __ecereNameSpace__ecere__com__Method * left;
233 struct __ecereNameSpace__ecere__com__Method * right;
238 struct __ecereNameSpace__ecere__com__Class * _class;
240 const char * dataTypeString;
241 struct __ecereNameSpace__ecere__com__Instance * dataType;
243 } __attribute__ ((gcc_struct));
245 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
247 struct __ecereNameSpace__ecere__com__SerialBuffer
249 unsigned char * _buffer;
253 } __attribute__ ((gcc_struct));
255 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
257 struct __ecereNameSpace__ecere__com__DataValue
272 } __attribute__ ((gcc_struct)) __anon1;
273 } __attribute__ ((gcc_struct));
275 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
277 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
283 const char * dataTypeString;
284 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
285 } __attribute__ ((gcc_struct)) __anon1;
286 struct __ecereNameSpace__ecere__com__DataValue expression;
289 const char * memberString;
292 struct __ecereNameSpace__ecere__com__DataMember * member;
293 struct __ecereNameSpace__ecere__com__Property * prop;
294 struct __ecereNameSpace__ecere__com__Method * method;
295 } __attribute__ ((gcc_struct)) __anon1;
296 } __attribute__ ((gcc_struct)) __anon2;
297 } __attribute__ ((gcc_struct)) __anon1;
298 } __attribute__ ((gcc_struct));
300 extern int __ecereVMethodID_class_OnCompare;
302 extern int __ecereVMethodID_class_OnCopy;
304 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_prev, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev;
306 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_next, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next;
308 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_count, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count;
310 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_depthProp, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp;
312 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_balanceFactor, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor;
314 struct __ecereNameSpace__ecere__com__AVLNode
316 struct __ecereNameSpace__ecere__com__AVLNode * parent, * left, * right;
319 } __attribute__ ((gcc_struct));
321 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AVLNode;
323 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(struct __ecereNameSpace__ecere__com__AVLNode * this);
325 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_maximum, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum;
327 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev(struct __ecereNameSpace__ecere__com__AVLNode * this)
330 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(this->left);
333 if(this->parent && this == this->parent->right)
341 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(struct __ecereNameSpace__ecere__com__AVLNode * this);
343 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_minimum, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum;
345 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next(struct __ecereNameSpace__ecere__com__AVLNode * this)
347 struct __ecereNameSpace__ecere__com__AVLNode * right = this->right;
350 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(right);
353 struct __ecereNameSpace__ecere__com__AVLNode * parent = this->parent;
355 if(parent && this == parent->left)
360 return (((void *)0));
363 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(struct __ecereNameSpace__ecere__com__AVLNode * this)
370 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(struct __ecereNameSpace__ecere__com__AVLNode * this)
377 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count(struct __ecereNameSpace__ecere__com__AVLNode * this)
379 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);
382 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(struct __ecereNameSpace__ecere__com__AVLNode * this)
384 int leftDepth = this->left ? (__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(this->left) + 1) : 0;
385 int rightDepth = this->right ? (__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(this->right) + 1) : 0;
387 return ((leftDepth > rightDepth) ? leftDepth : rightDepth);
390 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IteratorPointer;
392 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(struct __ecereNameSpace__ecere__com__AVLNode * this)
395 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(this->left);
397 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(this->right);
398 ((this ? (__ecereClass___ecereNameSpace__ecere__com__AVLNode->Destructor ? __ecereClass___ecereNameSpace__ecere__com__AVLNode->Destructor((void *)this) : 0, __ecereClass___ecereNameSpace__ecere__com__IteratorPointer->Destructor ? __ecereClass___ecereNameSpace__ecere__com__IteratorPointer->Destructor((void *)this) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(this)) : 0), this = 0);
401 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uint64;
403 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)
406 Tclass = __ecereClass_uint64;
410 unsigned char * a, * b;
412 if((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1)
414 a = (unsigned char *)&node->key;
415 b = (unsigned char *)&this->key;
416 a += __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize);
417 b += __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize);
421 a = (unsigned char *)*(uint64 *)(&node->key);
422 b = (unsigned char *)*(uint64 *)(&this->key);
424 result = ((int (*)(void *, void *, void *))(void *)Tclass->_vTbl[__ecereVMethodID_class_OnCompare])(Tclass, a, b);
439 struct __ecereNameSpace__ecere__com__AVLNode * n;
441 for(n = this; n; n = n->parent)
443 int __simpleStruct0, __simpleStruct1;
444 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
446 if(newDepth == n->depth)
464 struct __ecereNameSpace__ecere__com__AVLNode * n;
466 for(n = this; n; n = n->parent)
468 int __simpleStruct0, __simpleStruct1;
469 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
471 if(newDepth == n->depth)
482 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Find(struct __ecereNameSpace__ecere__com__AVLNode * this, struct __ecereNameSpace__ecere__com__Class * Tclass, const uint64 key)
487 unsigned char * a, * b;
489 if((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3)
491 a = (unsigned char *)&key;
492 a += __ENDIAN_PAD(Tclass->typeSize);
495 a = (unsigned char *)key;
496 if((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1)
498 b = (unsigned char *)&this->key;
499 b += __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize);
502 b = (unsigned char *)*(uint64 *)(&this->key);
503 result = ((int (*)(void *, void *, void *))(void *)Tclass->_vTbl[__ecereVMethodID_class_OnCompare])(Tclass, a, b);
514 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(struct __ecereNameSpace__ecere__com__AVLNode * this, const uint64 key)
516 struct __ecereNameSpace__ecere__com__AVLNode * result = (((void *)0));
520 if(!result && this->left)
521 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(this->left, key);
522 if(!result && this->right)
523 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(this->right, key);
527 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwap(struct __ecereNameSpace__ecere__com__AVLNode * this, struct __ecereNameSpace__ecere__com__AVLNode * swap)
531 swap->left->parent = swap->parent;
532 if(swap == swap->parent->left)
533 swap->parent->left = swap->left;
534 else if(swap == swap->parent->right)
535 swap->parent->right = swap->left;
536 swap->left = (((void *)0));
540 swap->right->parent = swap->parent;
541 if(swap == swap->parent->left)
542 swap->parent->left = swap->right;
543 else if(swap == swap->parent->right)
544 swap->parent->right = swap->right;
545 swap->right = (((void *)0));
547 if(swap == swap->parent->left)
548 swap->parent->left = (((void *)0));
549 else if(swap == swap->parent->right)
550 swap->parent->right = (((void *)0));
552 struct __ecereNameSpace__ecere__com__AVLNode * n;
554 for(n = swap->parent; n; n = n->parent)
556 int __simpleStruct0, __simpleStruct1;
557 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
559 if(newDepth == n->depth)
566 swap->left = this->left;
568 this->left->parent = swap;
569 swap->right = this->right;
571 this->right->parent = swap;
572 swap->parent = this->parent;
573 this->left = (((void *)0));
574 this->right = (((void *)0));
577 if(this == this->parent->left)
578 this->parent->left = swap;
579 else if(this == this->parent->right)
580 this->parent->right = swap;
584 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance();
586 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwapLeft(struct __ecereNameSpace__ecere__com__AVLNode * this)
588 struct __ecereNameSpace__ecere__com__AVLNode * swap = this->left ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(this->left) : this->right;
589 struct __ecereNameSpace__ecere__com__AVLNode * swapParent = (((void *)0));
593 swapParent = swap->parent;
594 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwap(this, swap);
598 if(this == this->parent->left)
599 this->parent->left = (((void *)0));
600 else if(this == this->parent->right)
601 this->parent->right = (((void *)0));
604 struct __ecereNameSpace__ecere__com__AVLNode * n;
606 for(n = swap ? swap : this->parent; n; n = n->parent)
608 int __simpleStruct0, __simpleStruct1;
609 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
611 if(newDepth == n->depth && n != swap)
616 if(swapParent && swapParent != this)
617 return __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swapParent);
619 return __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swap);
620 else if(this->parent)
621 return __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(this->parent);
623 return (((void *)0));
626 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwapRight(struct __ecereNameSpace__ecere__com__AVLNode * this)
628 struct __ecereNameSpace__ecere__com__AVLNode * result;
629 struct __ecereNameSpace__ecere__com__AVLNode * swap = this->right ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(this->right) : this->left;
630 struct __ecereNameSpace__ecere__com__AVLNode * swapParent = (((void *)0));
634 swapParent = swap->parent;
635 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwap(this, swap);
639 if(this == this->parent->left)
640 this->parent->left = (((void *)0));
641 else if(this == this->parent->right)
642 this->parent->right = (((void *)0));
645 struct __ecereNameSpace__ecere__com__AVLNode * n;
647 for(n = swap ? swap : this->parent; n; n = n->parent)
649 int __simpleStruct0, __simpleStruct1;
650 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
652 if(newDepth == n->depth && n != swap)
657 if(swapParent && swapParent != this)
658 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swapParent);
660 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swap);
661 else if(this->parent)
662 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(this->parent);
664 result = (((void *)0));
668 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(struct __ecereNameSpace__ecere__com__AVLNode * this)
670 int leftDepth = this->left ? (this->left->depth + 1) : 0;
671 int rightDepth = this->right ? (this->right->depth + 1) : 0;
673 return rightDepth - leftDepth;
676 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateRight();
678 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight();
680 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateLeft();
682 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft();
684 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(struct __ecereNameSpace__ecere__com__AVLNode * this)
688 int factor = __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(this);
692 if(__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(this->left) == 1)
693 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateRight(this);
695 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(this);
699 if(__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(this->right) == -1)
700 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateLeft(this);
702 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(this);
711 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(struct __ecereNameSpace__ecere__com__AVLNode * this)
713 int __simpleStruct2, __simpleStruct3;
714 int __simpleStruct0, __simpleStruct1;
718 if(this == this->parent->left)
719 this->parent->left = this->left;
720 else if(this == this->parent->right)
721 this->parent->right = this->left;
723 this->left->parent = this->parent;
724 this->parent = this->left;
725 this->left = this->parent->right;
727 this->left->parent = this;
728 this->parent->right = this;
729 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
730 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);
732 struct __ecereNameSpace__ecere__com__AVLNode * n;
734 for(n = this->parent->parent; n; n = n->parent)
736 int __simpleStruct0, __simpleStruct1;
737 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
739 if(newDepth == n->depth)
746 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(struct __ecereNameSpace__ecere__com__AVLNode * this)
748 int __simpleStruct2, __simpleStruct3;
749 int __simpleStruct0, __simpleStruct1;
753 if(this == this->parent->right)
754 this->parent->right = this->right;
755 else if(this == this->parent->left)
756 this->parent->left = this->right;
758 this->right->parent = this->parent;
759 this->parent = this->right;
760 this->right = this->parent->left;
762 this->right->parent = this;
763 this->parent->left = this;
764 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
765 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);
767 struct __ecereNameSpace__ecere__com__AVLNode * n;
769 for(n = this->parent->parent; n; n = n->parent)
771 int __simpleStruct0, __simpleStruct1;
772 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
774 if(newDepth == n->depth)
781 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateRight(struct __ecereNameSpace__ecere__com__AVLNode * this)
783 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(this->left);
784 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(this);
787 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateLeft(struct __ecereNameSpace__ecere__com__AVLNode * this)
789 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(this->right);
790 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(this);
793 struct __ecereNameSpace__ecere__com__CustomAVLTree
795 struct __ecereNameSpace__ecere__com__AVLNode * root;
797 } __attribute__ ((gcc_struct));
799 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__CustomAVLTree;
801 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetFirst(struct __ecereNameSpace__ecere__com__Instance * this)
803 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
805 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(((struct __ecereNameSpace__ecere__com__AVLNode *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root))) : (((void *)0)));
808 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetLast(struct __ecereNameSpace__ecere__com__Instance * this)
810 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
812 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(((struct __ecereNameSpace__ecere__com__AVLNode *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root))) : (((void *)0)));
815 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetPrev(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
817 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
819 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev(((struct __ecereNameSpace__ecere__com__AVLNode *)node));
822 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetNext(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
824 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
826 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next(((struct __ecereNameSpace__ecere__com__AVLNode *)node));
829 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
831 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
833 return (struct __ecereNameSpace__ecere__com__AVLNode *)node;
836 unsigned int __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_SetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node, uint64 data)
838 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
843 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, const char * name);
845 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
847 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
849 struct __ecereNameSpace__ecere__com__NameSpace
852 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
853 struct __ecereNameSpace__ecere__com__NameSpace * left;
854 struct __ecereNameSpace__ecere__com__NameSpace * right;
856 struct __ecereNameSpace__ecere__com__NameSpace * parent;
857 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
858 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
859 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
860 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
861 } __attribute__ ((gcc_struct));
863 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
865 struct __ecereNameSpace__ecere__com__Module
867 struct __ecereNameSpace__ecere__com__Instance * application;
868 struct __ecereNameSpace__ecere__sys__OldList classes;
869 struct __ecereNameSpace__ecere__sys__OldList defines;
870 struct __ecereNameSpace__ecere__sys__OldList functions;
871 struct __ecereNameSpace__ecere__sys__OldList modules;
872 struct __ecereNameSpace__ecere__com__Instance * prev;
873 struct __ecereNameSpace__ecere__com__Instance * next;
879 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
880 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
881 } __attribute__ ((gcc_struct));
883 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Add(struct __ecereNameSpace__ecere__com__Instance * this, uint64 node)
885 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
887 if(!((struct __ecereNameSpace__ecere__com__AVLNode *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root)))
888 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root = ((struct __ecereNameSpace__ecere__com__AVLNode *)(node));
891 struct __ecereNameSpace__ecere__com__Class * Tclass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].__anon1.__anon1.dataTypeClass->templateArgs[0].__anon1.__anon1.dataTypeClass;
895 Tclass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].__anon1.__anon1.dataTypeClass->templateArgs[0].__anon1.__anon1.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].__anon1.__anon1.dataTypeClass->templateArgs[0].__anon1.__anon1.dataTypeString);
897 if(__ecereMethod___ecereNameSpace__ecere__com__AVLNode_Add(((struct __ecereNameSpace__ecere__com__AVLNode *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root)), Tclass, ((struct __ecereNameSpace__ecere__com__AVLNode *)(node))))
898 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(((struct __ecereNameSpace__ecere__com__AVLNode *)(node)));
900 return (((void *)0));
902 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->count++;
903 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)((struct __ecereNameSpace__ecere__com__AVLNode *)(node));
906 void __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Remove(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
908 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
909 struct __ecereNameSpace__ecere__com__AVLNode * parent = ((struct __ecereNameSpace__ecere__com__AVLNode *)node)->parent;
911 if(parent || ((struct __ecereNameSpace__ecere__com__AVLNode *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root)) == (struct __ecereNameSpace__ecere__com__AVLNode *)node)
913 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwapRight(((struct __ecereNameSpace__ecere__com__AVLNode *)node));
914 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->count--;
915 ((struct __ecereNameSpace__ecere__com__AVLNode *)node)->parent = (((void *)0));
919 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove;
921 int __ecereVMethodID_class_OnFree;
923 void __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Delete(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * _item)
925 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
926 struct __ecereNameSpace__ecere__com__AVLNode * item = (struct __ecereNameSpace__ecere__com__AVLNode *)_item;
928 ((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);
929 (((void (* )(void * _class, void * data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].__anon1.__anon1.dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance * )(char * )this)->_class->templateArgs[3].__anon1.__anon1.dataTypeClass, ((void * )(item))), item = 0);
932 void __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Free(struct __ecereNameSpace__ecere__com__Instance * this)
934 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
935 struct __ecereNameSpace__ecere__com__AVLNode * item;
937 while((item = ((struct __ecereNameSpace__ecere__com__AVLNode *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root))))
939 ((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, (void *)((struct __ecereNameSpace__ecere__com__AVLNode *)(item)));
940 (((void (* )(void * _class, void * data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].__anon1.__anon1.dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance * )(char * )this)->_class->templateArgs[3].__anon1.__anon1.dataTypeClass, ((void * )(item))), item = 0);
944 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Find(struct __ecereNameSpace__ecere__com__Instance * this, uint64 value)
946 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
948 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)((struct __ecereNameSpace__ecere__com__AVLNode *)(value));
951 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, const char * name, const char * baseName, int size, int sizeClass, unsigned int (* Constructor)(void * ), void (* Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
953 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, const char * type, void * function, int declMode);
955 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, const char * type, unsigned int size, unsigned int alignment, int declMode);
957 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_AddProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, const char * dataType, void * setStmt, void * getStmt, int declMode);
959 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter;
961 struct __ecereNameSpace__ecere__com__ClassTemplateParameter;
963 extern struct __ecereNameSpace__ecere__com__ClassTemplateParameter * __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, int type, const void * info, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * defaultArg);
965 extern void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base);
967 void __ecereRegisterModule_CustomAVLTree(struct __ecereNameSpace__ecere__com__Instance * module)
969 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct0 =
975 .dataTypeString = "uint64"
979 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
981 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);
982 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
983 __ecereClass___ecereNameSpace__ecere__com__AVLNode = class;
984 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", "thisclass Find(ecere::com::Class Tclass, const T key)", __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Find, 1);
985 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "__ecerePrivateData0", "byte[" _XSTR(AVLNode_PrivateData) "]", AVLNode_PrivateData, 1, 2);
986 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "T", 8, 8, 1);
987 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "prev", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev, 1);
988 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
989 __ecereProp___ecereNameSpace__ecere__com__AVLNode_prev = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev = (void *)0;
990 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "next", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next, 1);
991 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
992 __ecereProp___ecereNameSpace__ecere__com__AVLNode_next = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next = (void *)0;
993 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "minimum", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum, 1);
994 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
995 __ecereProp___ecereNameSpace__ecere__com__AVLNode_minimum = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum = (void *)0;
996 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "maximum", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum, 1);
997 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
998 __ecereProp___ecereNameSpace__ecere__com__AVLNode_maximum = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum = (void *)0;
999 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "count", "int", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count, 1);
1000 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
1001 __ecereProp___ecereNameSpace__ecere__com__AVLNode_count = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count = (void *)0;
1002 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "depthProp", "int", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp, 1);
1003 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
1004 __ecereProp___ecereNameSpace__ecere__com__AVLNode_depthProp = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp = (void *)0;
1005 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "balanceFactor", "int", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor, 2);
1006 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
1007 __ecereProp___ecereNameSpace__ecere__com__AVLNode_balanceFactor = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor = (void *)0;
1008 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "T", 0, 0, (((void *)0)));
1009 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
1011 class->fixed = (unsigned int)1;
1012 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);
1013 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
1014 __ecereClass___ecereNameSpace__ecere__com__CustomAVLTree = class;
1015 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetFirst", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetFirst, 1);
1016 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetLast", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetLast, 1);
1017 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetPrev", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetPrev, 1);
1018 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetNext", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetNext, 1);
1019 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetData", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetData, 1);
1020 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "SetData", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_SetData, 1);
1021 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Add, 1);
1022 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Remove, 1);
1023 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Find, 1);
1024 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Free, 1);
1025 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Delete", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Delete, 1);
1026 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "root", "BT", arch_PointerSize, arch_PointerSize, 1);
1027 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
1028 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "BT", 0, "ecere::com::AVLNode", (((void *)0)));
1029 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "KT", 0, 0, &__simpleStruct0);
1030 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
1032 class->fixed = (unsigned int)1;
1035 void __ecereUnregisterModule_CustomAVLTree(struct __ecereNameSpace__ecere__com__Instance * module)
1038 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev = (void *)0;
1039 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next = (void *)0;
1040 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum = (void *)0;
1041 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum = (void *)0;
1042 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count = (void *)0;
1043 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp = (void *)0;
1044 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor = (void *)0;