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 # if defined(__GNUC__) || defined(__TINYC__)
40 # define ecere_stdcall __attribute__((__stdcall__))
41 # define ecere_gcc_struct __attribute__((gcc_struct))
43 # define ecere_stdcall __stdcall
44 # define ecere_gcc_struct
47 # define ecere_stdcall
48 # define ecere_gcc_struct
51 #include <sys/types.h>
52 extern int __ecereVMethodID_class_OnCompare;
54 extern int __ecereVMethodID_class_OnCopy;
56 struct __ecereNameSpace__ecere__com__CustomAVLTree
58 struct __ecereNameSpace__ecere__com__AVLNode * root;
62 struct __ecereNameSpace__ecere__sys__BTNode;
64 struct __ecereNameSpace__ecere__sys__OldList
73 struct __ecereNameSpace__ecere__com__DataValue
88 } ecere_gcc_struct __anon1;
91 struct __ecereNameSpace__ecere__com__SerialBuffer
93 unsigned char * _buffer;
99 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
101 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
103 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
105 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
107 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
109 struct __ecereNameSpace__ecere__com__AVLNode;
111 struct __ecereNameSpace__ecere__com__IteratorPointer;
113 struct __ecereNameSpace__ecere__com__ClassTemplateParameter;
115 int __ecereVMethodID_class_OnFree;
117 struct __ecereNameSpace__ecere__com__AVLNode
119 struct __ecereNameSpace__ecere__com__AVLNode * parent, * left, * right;
124 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(struct __ecereNameSpace__ecere__com__AVLNode * this)
131 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(struct __ecereNameSpace__ecere__com__AVLNode * this)
138 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwap(struct __ecereNameSpace__ecere__com__AVLNode * this, struct __ecereNameSpace__ecere__com__AVLNode * swap)
142 swap->left->parent = swap->parent;
143 if(swap == swap->parent->left)
144 swap->parent->left = swap->left;
145 else if(swap == swap->parent->right)
146 swap->parent->right = swap->left;
147 swap->left = (((void *)0));
151 swap->right->parent = swap->parent;
152 if(swap == swap->parent->left)
153 swap->parent->left = swap->right;
154 else if(swap == swap->parent->right)
155 swap->parent->right = swap->right;
156 swap->right = (((void *)0));
158 if(swap == swap->parent->left)
159 swap->parent->left = (((void *)0));
160 else if(swap == swap->parent->right)
161 swap->parent->right = (((void *)0));
163 struct __ecereNameSpace__ecere__com__AVLNode * n;
165 for(n = swap->parent; n; n = n->parent)
167 int __simpleStruct0, __simpleStruct1;
168 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
170 if(newDepth == n->depth)
177 swap->left = this->left;
179 this->left->parent = swap;
180 swap->right = this->right;
182 this->right->parent = swap;
183 swap->parent = this->parent;
184 this->left = (((void *)0));
185 this->right = (((void *)0));
188 if(this == this->parent->left)
189 this->parent->left = swap;
190 else if(this == this->parent->right)
191 this->parent->right = swap;
195 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(struct __ecereNameSpace__ecere__com__AVLNode * this)
197 int leftDepth = this->left ? (this->left->depth + 1) : 0;
198 int rightDepth = this->right ? (this->right->depth + 1) : 0;
200 return rightDepth - leftDepth;
203 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(struct __ecereNameSpace__ecere__com__AVLNode * this)
205 int __simpleStruct2, __simpleStruct3;
206 int __simpleStruct0, __simpleStruct1;
210 if(this == this->parent->left)
211 this->parent->left = this->left;
212 else if(this == this->parent->right)
213 this->parent->right = this->left;
215 this->left->parent = this->parent;
216 this->parent = this->left;
217 this->left = this->parent->right;
219 this->left->parent = this;
220 this->parent->right = this;
221 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
222 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);
224 struct __ecereNameSpace__ecere__com__AVLNode * n;
226 for(n = this->parent->parent; n; n = n->parent)
228 int __simpleStruct0, __simpleStruct1;
229 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
231 if(newDepth == n->depth)
238 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(struct __ecereNameSpace__ecere__com__AVLNode * this)
240 int __simpleStruct2, __simpleStruct3;
241 int __simpleStruct0, __simpleStruct1;
245 if(this == this->parent->right)
246 this->parent->right = this->right;
247 else if(this == this->parent->left)
248 this->parent->left = this->right;
250 this->right->parent = this->parent;
251 this->parent = this->right;
252 this->right = this->parent->left;
254 this->right->parent = this;
255 this->parent->left = this;
256 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
257 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);
259 struct __ecereNameSpace__ecere__com__AVLNode * n;
261 for(n = this->parent->parent; n; n = n->parent)
263 int __simpleStruct0, __simpleStruct1;
264 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
266 if(newDepth == n->depth)
273 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(struct __ecereNameSpace__ecere__com__AVLNode * this);
275 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(struct __ecereNameSpace__ecere__com__AVLNode * this);
277 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count(struct __ecereNameSpace__ecere__com__AVLNode * this);
279 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(struct __ecereNameSpace__ecere__com__AVLNode * this);
281 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(struct __ecereNameSpace__ecere__com__AVLNode * this);
283 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev(struct __ecereNameSpace__ecere__com__AVLNode * this);
285 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next(struct __ecereNameSpace__ecere__com__AVLNode * this);
287 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateRight(struct __ecereNameSpace__ecere__com__AVLNode * this)
289 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(this->left);
290 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(this);
293 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateLeft(struct __ecereNameSpace__ecere__com__AVLNode * this)
295 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(this->right);
296 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(this);
299 struct __ecereNameSpace__ecere__com__Property;
301 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
303 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_prev, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev;
305 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_next, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next;
307 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_minimum, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum;
309 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_maximum, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum;
311 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_count, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count;
313 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_depthProp, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp;
315 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_balanceFactor, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor;
317 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next(struct __ecereNameSpace__ecere__com__AVLNode * this)
319 struct __ecereNameSpace__ecere__com__AVLNode * right = this->right;
322 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(right);
325 struct __ecereNameSpace__ecere__com__AVLNode * parent = this->parent;
327 if(parent && this == parent->left)
332 return (((void *)0));
335 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev(struct __ecereNameSpace__ecere__com__AVLNode * this)
338 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(this->left);
341 if(this->parent && this == this->parent->right)
349 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count(struct __ecereNameSpace__ecere__com__AVLNode * this)
351 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);
354 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(struct __ecereNameSpace__ecere__com__AVLNode * this)
356 int leftDepth = this->left ? (__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(this->left) + 1) : 0;
357 int rightDepth = this->right ? (__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(this->right) + 1) : 0;
359 return ((leftDepth > rightDepth) ? leftDepth : rightDepth);
362 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(struct __ecereNameSpace__ecere__com__AVLNode * this)
366 int factor = __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(this);
370 if(__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(this->left) == 1)
371 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateRight(this);
373 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(this);
377 if(__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(this->right) == -1)
378 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateLeft(this);
380 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(this);
389 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwapLeft(struct __ecereNameSpace__ecere__com__AVLNode * this)
391 struct __ecereNameSpace__ecere__com__AVLNode * swap = this->left ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(this->left) : this->right;
392 struct __ecereNameSpace__ecere__com__AVLNode * swapParent = (((void *)0));
396 swapParent = swap->parent;
397 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwap(this, swap);
401 if(this == this->parent->left)
402 this->parent->left = (((void *)0));
403 else if(this == this->parent->right)
404 this->parent->right = (((void *)0));
407 struct __ecereNameSpace__ecere__com__AVLNode * n;
409 for(n = swap ? swap : this->parent; n; n = n->parent)
411 int __simpleStruct0, __simpleStruct1;
412 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
414 if(newDepth == n->depth && n != swap)
419 if(swapParent && swapParent != this)
420 return __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swapParent);
422 return __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swap);
423 else if(this->parent)
424 return __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(this->parent);
426 return (((void *)0));
429 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwapRight(struct __ecereNameSpace__ecere__com__AVLNode * this)
431 struct __ecereNameSpace__ecere__com__AVLNode * result;
432 struct __ecereNameSpace__ecere__com__AVLNode * swap = this->right ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(this->right) : this->left;
433 struct __ecereNameSpace__ecere__com__AVLNode * swapParent = (((void *)0));
437 swapParent = swap->parent;
438 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwap(this, swap);
442 if(this == this->parent->left)
443 this->parent->left = (((void *)0));
444 else if(this == this->parent->right)
445 this->parent->right = (((void *)0));
448 struct __ecereNameSpace__ecere__com__AVLNode * n;
450 for(n = swap ? swap : this->parent; n; n = n->parent)
452 int __simpleStruct0, __simpleStruct1;
453 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
455 if(newDepth == n->depth && n != swap)
460 if(swapParent && swapParent != this)
461 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swapParent);
463 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swap);
464 else if(this->parent)
465 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(this->parent);
467 result = (((void *)0));
471 struct __ecereNameSpace__ecere__com__Class;
473 struct __ecereNameSpace__ecere__com__Instance
476 struct __ecereNameSpace__ecere__com__Class * _class;
480 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
482 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
484 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);
486 extern void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base);
488 struct __ecereNameSpace__ecere__com__Property
490 struct __ecereNameSpace__ecere__com__Property * prev;
491 struct __ecereNameSpace__ecere__com__Property * next;
493 unsigned int isProperty;
496 struct __ecereNameSpace__ecere__com__Class * _class;
497 const char * dataTypeString;
498 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
499 struct __ecereNameSpace__ecere__com__Instance * dataType;
500 void (* Set)(void * , int);
501 int (* Get)(void * );
502 unsigned int (* IsSet)(void * );
506 unsigned int conversion;
507 unsigned int watcherOffset;
508 const char * category;
509 unsigned int compiled;
510 unsigned int selfWatchable;
511 unsigned int isWatchable;
514 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
516 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
518 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
520 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);
522 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
524 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove;
526 struct __ecereNameSpace__ecere__sys__BinaryTree;
528 struct __ecereNameSpace__ecere__sys__BinaryTree
530 struct __ecereNameSpace__ecere__sys__BTNode * root;
532 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
533 void (* FreeKey)(void * key);
536 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(struct __ecereNameSpace__ecere__com__AVLNode * this, const uint64 key);
538 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(struct __ecereNameSpace__ecere__com__AVLNode * this, const uint64 key)
540 struct __ecereNameSpace__ecere__com__AVLNode * result = (((void *)0));
544 if(!result && this->left)
545 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(this->left, key);
546 if(!result && this->right)
547 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(this->right, key);
551 struct __ecereNameSpace__ecere__com__DataMember;
553 struct __ecereNameSpace__ecere__com__DataMember
555 struct __ecereNameSpace__ecere__com__DataMember * prev;
556 struct __ecereNameSpace__ecere__com__DataMember * next;
558 unsigned int isProperty;
561 struct __ecereNameSpace__ecere__com__Class * _class;
562 const char * dataTypeString;
563 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
564 struct __ecereNameSpace__ecere__com__Instance * dataType;
568 struct __ecereNameSpace__ecere__sys__OldList members;
569 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
571 short structAlignment;
572 short pointerAlignment;
575 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);
577 struct __ecereNameSpace__ecere__com__Method;
579 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
585 const char * dataTypeString;
586 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
587 } ecere_gcc_struct __anon1;
588 struct __ecereNameSpace__ecere__com__DataValue expression;
591 const char * memberString;
594 struct __ecereNameSpace__ecere__com__DataMember * member;
595 struct __ecereNameSpace__ecere__com__Property * prop;
596 struct __ecereNameSpace__ecere__com__Method * method;
597 } ecere_gcc_struct __anon1;
598 } ecere_gcc_struct __anon2;
599 } ecere_gcc_struct __anon1;
602 struct __ecereNameSpace__ecere__com__Method
605 struct __ecereNameSpace__ecere__com__Method * parent;
606 struct __ecereNameSpace__ecere__com__Method * left;
607 struct __ecereNameSpace__ecere__com__Method * right;
612 struct __ecereNameSpace__ecere__com__Class * _class;
614 const char * dataTypeString;
615 struct __ecereNameSpace__ecere__com__Instance * dataType;
619 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);
621 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);
623 struct __ecereNameSpace__ecere__com__Module;
625 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, const char * name);
627 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
629 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);
631 struct __ecereNameSpace__ecere__com__NameSpace;
633 struct __ecereNameSpace__ecere__com__NameSpace
636 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
637 struct __ecereNameSpace__ecere__com__NameSpace * left;
638 struct __ecereNameSpace__ecere__com__NameSpace * right;
640 struct __ecereNameSpace__ecere__com__NameSpace * parent;
641 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
642 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
643 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
644 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
647 struct __ecereNameSpace__ecere__com__Class
649 struct __ecereNameSpace__ecere__com__Class * prev;
650 struct __ecereNameSpace__ecere__com__Class * next;
656 unsigned int (* Constructor)(void * );
657 void (* Destructor)(void * );
660 struct __ecereNameSpace__ecere__com__Class * base;
661 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
662 struct __ecereNameSpace__ecere__sys__BinaryTree members;
663 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
664 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
665 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
666 struct __ecereNameSpace__ecere__sys__OldList derivatives;
670 struct __ecereNameSpace__ecere__com__Instance * module;
671 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
672 const char * dataTypeString;
673 struct __ecereNameSpace__ecere__com__Instance * dataType;
675 int defaultAlignment;
676 void (* Initialize)();
678 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
679 const char * designerClass;
680 unsigned int noExpansion;
681 const char * defaultProperty;
682 unsigned int comRedefinition;
685 unsigned int internalDecl;
687 unsigned int computeSize;
688 short structAlignment;
689 short pointerAlignment;
690 int destructionWatchOffset;
692 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
693 int inheritanceAccess;
694 const char * fullName;
696 struct __ecereNameSpace__ecere__sys__OldList conversions;
697 struct __ecereNameSpace__ecere__sys__OldList templateParams;
698 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
699 struct __ecereNameSpace__ecere__com__Class * templateClass;
700 struct __ecereNameSpace__ecere__sys__OldList templatized;
702 unsigned int isInstanceClass;
703 unsigned int byValueSystemClass;
706 struct __ecereNameSpace__ecere__com__Application
711 unsigned int isGUIApp;
712 struct __ecereNameSpace__ecere__sys__OldList allModules;
713 char * parsedCommand;
714 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
717 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AVLNode;
719 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__CustomAVLTree;
721 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)
726 unsigned char * a, * b;
728 if((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3)
730 a = (unsigned char *)&key;
731 a += __ENDIAN_PAD(Tclass->typeSize);
734 a = (unsigned char *)(uintptr_t)key;
735 if((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1)
737 b = (unsigned char *)&this->key;
738 b += __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize);
741 b = (unsigned char *)(uintptr_t)(uint64)(this->key);
742 result = ((int (*)(void *, void *, void *))(void *)Tclass->_vTbl[__ecereVMethodID_class_OnCompare])(Tclass, a, b);
753 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IteratorPointer;
755 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uint64;
757 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
759 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
761 struct __ecereNameSpace__ecere__com__Module
763 struct __ecereNameSpace__ecere__com__Instance * application;
764 struct __ecereNameSpace__ecere__sys__OldList classes;
765 struct __ecereNameSpace__ecere__sys__OldList defines;
766 struct __ecereNameSpace__ecere__sys__OldList functions;
767 struct __ecereNameSpace__ecere__sys__OldList modules;
768 struct __ecereNameSpace__ecere__com__Instance * prev;
769 struct __ecereNameSpace__ecere__com__Instance * next;
775 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
776 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
779 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetFirst(struct __ecereNameSpace__ecere__com__Instance * this)
781 __attribute__((unused)) struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
783 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(((struct __ecereNameSpace__ecere__com__AVLNode *)((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root)))) : (((void *)0)));
786 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetLast(struct __ecereNameSpace__ecere__com__Instance * this)
788 __attribute__((unused)) struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
790 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(((struct __ecereNameSpace__ecere__com__AVLNode *)((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root)))) : (((void *)0)));
793 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetPrev(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
795 __attribute__((unused)) struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
797 return (void *)(__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev(((struct __ecereNameSpace__ecere__com__AVLNode *)node)));
800 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetNext(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
802 __attribute__((unused)) struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
804 return (void *)(__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next(((struct __ecereNameSpace__ecere__com__AVLNode *)node)));
807 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
809 __attribute__((unused)) struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
811 return (struct __ecereNameSpace__ecere__com__AVLNode *)node;
814 unsigned int __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_SetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node, uint64 data)
816 __attribute__((unused)) struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
821 void __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Remove(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
823 __attribute__((unused)) struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
824 struct __ecereNameSpace__ecere__com__AVLNode * parent = ((struct __ecereNameSpace__ecere__com__AVLNode *)node)->parent;
826 if(parent || ((struct __ecereNameSpace__ecere__com__AVLNode *)((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root))) == (struct __ecereNameSpace__ecere__com__AVLNode *)node)
828 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwapRight(((struct __ecereNameSpace__ecere__com__AVLNode *)node));
829 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->count--;
830 ((struct __ecereNameSpace__ecere__com__AVLNode *)node)->parent = (((void *)0));
834 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Find(struct __ecereNameSpace__ecere__com__Instance * this, uint64 value)
836 __attribute__((unused)) struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
838 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)((struct __ecereNameSpace__ecere__com__AVLNode *)((uintptr_t)(value)));
841 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)
844 Tclass = __ecereClass_uint64;
848 unsigned char * a, * b;
850 if((Tclass->type == 1000 && !Tclass->byValueSystemClass) || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1)
852 a = (unsigned char *)&node->key;
853 b = (unsigned char *)&this->key;
854 a += __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize);
855 b += __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize);
859 a = (unsigned char *)(uintptr_t)(uint64)(node->key);
860 b = (unsigned char *)(uintptr_t)(uint64)(this->key);
862 result = ((int (*)(void *, void *, void *))(void *)Tclass->_vTbl[__ecereVMethodID_class_OnCompare])(Tclass, a, b);
877 struct __ecereNameSpace__ecere__com__AVLNode * n;
879 for(n = this; n; n = n->parent)
881 int __simpleStruct0, __simpleStruct1;
882 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
884 if(newDepth == n->depth)
902 struct __ecereNameSpace__ecere__com__AVLNode * n;
904 for(n = this; n; n = n->parent)
906 int __simpleStruct0, __simpleStruct1;
907 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
909 if(newDepth == n->depth)
920 void __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Delete(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * _item)
922 __attribute__((unused)) struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
923 struct __ecereNameSpace__ecere__com__AVLNode * item = (struct __ecereNameSpace__ecere__com__AVLNode *)_item;
925 ((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);
926 (((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 * )((uintptr_t)(item)))), item = 0);
929 void __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Free(struct __ecereNameSpace__ecere__com__Instance * this)
931 __attribute__((unused)) struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
932 struct __ecereNameSpace__ecere__com__AVLNode * item;
934 while((item = ((struct __ecereNameSpace__ecere__com__AVLNode *)((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root)))))
936 ((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 *)((uintptr_t)(item)))));
937 (((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 * )((uintptr_t)(item)))), item = 0);
941 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetAtPosition(struct __ecereNameSpace__ecere__com__Instance * this, const uint64 pos, unsigned int create, unsigned int * justAdded)
943 __attribute__((unused)) struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
945 return __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root ? __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Find(((struct __ecereNameSpace__ecere__com__AVLNode *)((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root))), ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[4].__anon1.__anon1.dataTypeClass, pos) : (((void *)0));
948 void __ecereUnregisterModule_CustomAVLTree(struct __ecereNameSpace__ecere__com__Instance * module)
951 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev = (void *)0;
952 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next = (void *)0;
953 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum = (void *)0;
954 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum = (void *)0;
955 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count = (void *)0;
956 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp = (void *)0;
957 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor = (void *)0;
960 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Add(struct __ecereNameSpace__ecere__com__Instance * this, uint64 node)
962 __attribute__((unused)) struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
964 if(!((struct __ecereNameSpace__ecere__com__AVLNode *)((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root))))
965 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root = ((struct __ecereNameSpace__ecere__com__AVLNode *)((uintptr_t)(node)));
968 struct __ecereNameSpace__ecere__com__Class * Tclass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].__anon1.__anon1.dataTypeClass->templateArgs[0].__anon1.__anon1.dataTypeClass;
972 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 + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application, ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].__anon1.__anon1.dataTypeClass->templateArgs[0].__anon1.__anon1.dataTypeString);
974 if(__ecereMethod___ecereNameSpace__ecere__com__AVLNode_Add(((struct __ecereNameSpace__ecere__com__AVLNode *)((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root))), Tclass, ((struct __ecereNameSpace__ecere__com__AVLNode *)((uintptr_t)(node)))))
975 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(((struct __ecereNameSpace__ecere__com__AVLNode *)((uintptr_t)(node))));
977 return (((void *)0));
979 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->count++;
980 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)((struct __ecereNameSpace__ecere__com__AVLNode *)((uintptr_t)(node)));
983 void __ecereRegisterModule_CustomAVLTree(struct __ecereNameSpace__ecere__com__Instance * module)
985 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct0 =
991 .dataTypeString = "uint64"
995 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
997 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::AVLNode", "ecere::com::IteratorPointer", sizeof(struct __ecereNameSpace__ecere__com__AVLNode), 0, (void *)0, (void *)0, module, 4, 1);
998 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application && class)
999 __ecereClass___ecereNameSpace__ecere__com__AVLNode = class;
1000 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", "thisclass Find(ecere::com::Class Tclass, const T key)", __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Find, 1);
1001 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "__ecerePrivateData0", "byte[32]", 32, 1, 2);
1002 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "T", 8, 8, 1);
1003 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "prev", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev, 1);
1004 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1005 __ecereProp___ecereNameSpace__ecere__com__AVLNode_prev = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev = (void *)0;
1006 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "next", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next, 1);
1007 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1008 __ecereProp___ecereNameSpace__ecere__com__AVLNode_next = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next = (void *)0;
1009 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "minimum", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum, 1);
1010 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1011 __ecereProp___ecereNameSpace__ecere__com__AVLNode_minimum = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum = (void *)0;
1012 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "maximum", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum, 1);
1013 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1014 __ecereProp___ecereNameSpace__ecere__com__AVLNode_maximum = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum = (void *)0;
1015 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "count", "int", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count, 1);
1016 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1017 __ecereProp___ecereNameSpace__ecere__com__AVLNode_count = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count = (void *)0;
1018 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "depthProp", "int", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp, 1);
1019 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1020 __ecereProp___ecereNameSpace__ecere__com__AVLNode_depthProp = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp = (void *)0;
1021 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "balanceFactor", "int", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor, 2);
1022 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1023 __ecereProp___ecereNameSpace__ecere__com__AVLNode_balanceFactor = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor = (void *)0;
1024 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "T", 0, 0, (((void *)0)));
1025 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
1027 class->fixed = (unsigned int)1;
1028 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::CustomAVLTree", "ecere::com::Container<BT, I = KT>", sizeof(struct __ecereNameSpace__ecere__com__CustomAVLTree), 0, (void *)0, (void *)0, module, 4, 1);
1029 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application && class)
1030 __ecereClass___ecereNameSpace__ecere__com__CustomAVLTree = class;
1031 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetFirst", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetFirst, 1);
1032 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetLast", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetLast, 1);
1033 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetPrev", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetPrev, 1);
1034 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetNext", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetNext, 1);
1035 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetData", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetData, 1);
1036 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "SetData", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_SetData, 1);
1037 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetAtPosition", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetAtPosition, 1);
1038 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Add, 1);
1039 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Remove, 1);
1040 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Find, 1);
1041 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Free, 1);
1042 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Delete", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Delete, 1);
1043 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "root", "BT", sizeof(void *), 0xF000F000, 1);
1044 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
1045 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "BT", 0, "ecere::com::AVLNode", (((void *)0)));
1046 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "KT", 0, 0, &__simpleStruct0);
1047 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
1049 class->fixed = (unsigned int)1;
1052 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(struct __ecereNameSpace__ecere__com__AVLNode * this);
1054 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(struct __ecereNameSpace__ecere__com__AVLNode * this)
1057 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(this->left);
1059 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(this->right);
1060 ((this ? __extension__ ({
1061 void * __ecerePtrToDelete = (this);
1063 __ecereClass___ecereNameSpace__ecere__com__AVLNode->Destructor ? __ecereClass___ecereNameSpace__ecere__com__AVLNode->Destructor((void *)__ecerePtrToDelete) : 0, __ecereClass___ecereNameSpace__ecere__com__IteratorPointer->Destructor ? __ecereClass___ecereNameSpace__ecere__com__IteratorPointer->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);