2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #elif defined(__TINYC__)
6 #define __builtin_va_list va_list
7 #define __builtin_va_start va_start
8 #define __builtin_va_end va_end
10 #define strcasecmp stricmp
11 #define strncasecmp strnicmp
12 #define __declspec(x) __attribute__((x))
14 typedef long long int64;
15 typedef unsigned long long uint64;
17 typedef __int64 int64;
18 typedef unsigned __int64 uint64;
21 #define __ENDIAN_PAD(x) (8 - (x))
23 #define __ENDIAN_PAD(x) 0
26 struct __ecereNameSpace__ecere__sys__BTNode
29 struct __ecereNameSpace__ecere__sys__BTNode * parent, * left, * right;
31 } __attribute__ ((gcc_struct));
33 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
35 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
37 struct __ecereNameSpace__ecere__sys__BinaryTree
39 struct __ecereNameSpace__ecere__sys__BTNode * root;
41 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
42 void (* FreeKey)(void * key);
43 } __attribute__ ((gcc_struct));
45 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
47 struct __ecereNameSpace__ecere__sys__OldList
54 } __attribute__ ((gcc_struct));
56 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
58 struct __ecereNameSpace__ecere__com__Class
60 struct __ecereNameSpace__ecere__com__Class * prev;
61 struct __ecereNameSpace__ecere__com__Class * next;
67 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
68 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
71 struct __ecereNameSpace__ecere__com__Class * base;
72 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
73 struct __ecereNameSpace__ecere__sys__BinaryTree members;
74 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
75 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
76 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
77 struct __ecereNameSpace__ecere__sys__OldList derivatives;
81 struct __ecereNameSpace__ecere__com__Instance * module;
82 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
83 char * dataTypeString;
84 struct __ecereNameSpace__ecere__com__Instance * dataType;
87 void (* Initialize)();
89 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
91 unsigned int noExpansion;
92 char * defaultProperty;
93 unsigned int comRedefinition;
95 unsigned int isRemote;
96 unsigned int internalDecl;
98 unsigned int computeSize;
100 int destructionWatchOffset;
102 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
103 int inheritanceAccess;
106 struct __ecereNameSpace__ecere__sys__OldList conversions;
107 struct __ecereNameSpace__ecere__sys__OldList templateParams;
108 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
109 struct __ecereNameSpace__ecere__com__Class * templateClass;
110 struct __ecereNameSpace__ecere__sys__OldList templatized;
112 } __attribute__ ((gcc_struct));
114 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
116 struct __ecereNameSpace__ecere__com__Instance
119 struct __ecereNameSpace__ecere__com__Class * _class;
121 } __attribute__ ((gcc_struct));
123 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
125 struct __ecereNameSpace__ecere__com__Property
127 struct __ecereNameSpace__ecere__com__Property * prev;
128 struct __ecereNameSpace__ecere__com__Property * next;
130 unsigned int isProperty;
133 struct __ecereNameSpace__ecere__com__Class * _class;
134 char * dataTypeString;
135 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
136 struct __ecereNameSpace__ecere__com__Instance * dataType;
139 unsigned int (* IsSet)();
143 unsigned int conversion;
144 unsigned int watcherOffset;
146 unsigned int compiled;
147 unsigned int selfWatchable;
148 unsigned int isWatchable;
149 } __attribute__ ((gcc_struct));
151 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
153 struct __ecereNameSpace__ecere__com__DataMember
155 struct __ecereNameSpace__ecere__com__DataMember * prev;
156 struct __ecereNameSpace__ecere__com__DataMember * next;
158 unsigned int isProperty;
161 struct __ecereNameSpace__ecere__com__Class * _class;
162 char * dataTypeString;
163 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
164 struct __ecereNameSpace__ecere__com__Instance * dataType;
168 struct __ecereNameSpace__ecere__sys__OldList members;
169 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
172 } __attribute__ ((gcc_struct));
174 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
176 struct __ecereNameSpace__ecere__com__Method
179 struct __ecereNameSpace__ecere__com__Method * parent;
180 struct __ecereNameSpace__ecere__com__Method * left;
181 struct __ecereNameSpace__ecere__com__Method * right;
186 struct __ecereNameSpace__ecere__com__Class * _class;
188 char * dataTypeString;
189 struct __ecereNameSpace__ecere__com__Instance * dataType;
191 } __attribute__ ((gcc_struct));
193 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
195 struct __ecereNameSpace__ecere__com__SerialBuffer
197 unsigned char * _buffer;
201 } __attribute__ ((gcc_struct));
203 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
205 struct __ecereNameSpace__ecere__com__DataValue
220 } __attribute__ ((gcc_struct));
221 } __attribute__ ((gcc_struct));
223 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
225 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
231 char * dataTypeString;
232 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
233 } __attribute__ ((gcc_struct));
234 struct __ecereNameSpace__ecere__com__DataValue expression;
240 struct __ecereNameSpace__ecere__com__DataMember * member;
241 struct __ecereNameSpace__ecere__com__Property * prop;
242 struct __ecereNameSpace__ecere__com__Method * method;
243 } __attribute__ ((gcc_struct));
244 } __attribute__ ((gcc_struct));
245 } __attribute__ ((gcc_struct));
246 } __attribute__ ((gcc_struct));
248 typedef __builtin_va_list __gnuc_va_list;
250 typedef __gnuc_va_list va_list;
252 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TreePrintStyle;
254 extern int vsprintf(char * , const char * , __builtin_va_list);
256 extern int strlen(const char * );
258 void __ecereNameSpace__ecere__sys__strcatf(char * string, char * format, ...)
262 __builtin_va_start(args, format);
263 vsprintf(string + strlen(string), format, args);
264 __builtin_va_end(args);
267 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_prev, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev;
269 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_next, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next;
271 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_count, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count;
273 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_balanceFactor, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor;
275 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data);
277 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_bool;
279 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uintptr;
281 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uint;
283 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnSerialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__com__Instance * channel)
285 if((struct __ecereNameSpace__ecere__sys__BTNode *)this)
287 unsigned int truth = 0x1;
289 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_bool, &truth);
290 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uintptr, &this->key);
291 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, this->left);
292 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, this->right);
296 unsigned int nothing = 0;
298 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uint, ¬hing);
302 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
304 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data);
306 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(struct __ecereNameSpace__ecere__sys__BTNode * this);
308 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_depthProp, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp;
310 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__sys__BTNode ** this, struct __ecereNameSpace__ecere__com__Instance * channel)
314 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_bool, &truth);
317 (*(this)) = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__BTNode);
318 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_uintptr, &(*(this))->key);
319 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, &(*(this))->left);
322 (*(this))->left->parent = (void *)*(struct __ecereNameSpace__ecere__sys__BTNode **)this;
324 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, &(*(this))->right);
327 (*(this))->right->parent = (void *)*(struct __ecereNameSpace__ecere__sys__BTNode **)this;
329 (*(this))->depth = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(((struct __ecereNameSpace__ecere__sys__BTNode *)(void *)*(struct __ecereNameSpace__ecere__sys__BTNode **)this));
332 (*(this)) = (((void *)0));
335 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(struct __ecereNameSpace__ecere__sys__BTNode * this);
337 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_maximum, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum;
339 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_prev(struct __ecereNameSpace__ecere__sys__BTNode * this)
342 return __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(this->left);
345 if(this->parent && this == this->parent->right)
353 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(struct __ecereNameSpace__ecere__sys__BTNode * this);
355 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_minimum, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum;
357 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this)
359 struct __ecereNameSpace__ecere__sys__BTNode * right = this->right;
362 return __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(right);
365 struct __ecereNameSpace__ecere__sys__BTNode * parent = this->parent;
367 if(parent && this == parent->left)
372 return (((void *)0));
375 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(struct __ecereNameSpace__ecere__sys__BTNode * this)
382 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(struct __ecereNameSpace__ecere__sys__BTNode * this)
389 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count(struct __ecereNameSpace__ecere__sys__BTNode * this)
391 return 1 + (this->left ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count(this->left) : 0) + (this->right ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count(this->right) : 0);
394 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(struct __ecereNameSpace__ecere__sys__BTNode * this)
396 int leftDepth = this->left ? (__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->left) + 1) : 0;
397 int rightDepth = this->right ? (__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->right) + 1) : 0;
399 return ((leftDepth > rightDepth) ? leftDepth : rightDepth);
402 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(struct __ecereNameSpace__ecere__sys__BTNode * this, void (* FreeKey)(void * key))
405 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(this->left, FreeKey);
407 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(this->right, FreeKey);
409 FreeKey((void *)this->key);
410 ((this ? (__ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor ? __ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor(this) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(this)) : 0), this = 0);
413 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Add(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree, struct __ecereNameSpace__ecere__sys__BTNode * node)
415 uintptr_t newKey = node->key;
419 int result = tree->CompareKey(tree, newKey, this->key);
435 struct __ecereNameSpace__ecere__sys__BTNode * n;
437 for(n = this; n; n = n->parent)
439 int __simpleStruct0, __simpleStruct1;
440 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
442 if(newDepth == n->depth)
460 struct __ecereNameSpace__ecere__sys__BTNode * n;
462 for(n = this; n; n = n->parent)
464 int __simpleStruct0, __simpleStruct1;
465 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
467 if(newDepth == n->depth)
478 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindNode(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BTNode * node)
482 else if(this->left && __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindNode(this->left, node))
484 else if(this->right && __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindNode(this->right, node))
489 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Find(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t key)
493 int result = tree->CompareKey(tree, key, this->key);
505 extern int strcmp(const char * , const char * );
507 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindString(struct __ecereNameSpace__ecere__sys__BTNode * this, char * key)
514 result = strcmp(key, (char *)this->key);
515 else if(key && !this->key)
517 else if(!key && this->key)
531 extern int strncmp(const char * , const char * , int n);
533 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindPrefix(struct __ecereNameSpace__ecere__sys__BTNode * this, char * key)
535 struct __ecereNameSpace__ecere__sys__BTNode * subString = (((void *)0));
536 int len = key ? strlen(key) : 0;
543 result = strcmp(key, (char *)this->key);
544 else if(key && !this->key)
546 else if(!key && this->key)
552 if(!strncmp(key, (char *)this->key, len))
567 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(struct __ecereNameSpace__ecere__sys__BTNode * this, uintptr_t key)
569 struct __ecereNameSpace__ecere__sys__BTNode * result = (((void *)0));
573 if(!result && this->left)
574 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(this->left, key);
575 if(!result && this->right)
576 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(this->right, key);
580 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BTNode * swap)
584 swap->left->parent = swap->parent;
585 if(swap == swap->parent->left)
586 swap->parent->left = swap->left;
587 else if(swap == swap->parent->right)
588 swap->parent->right = swap->left;
589 swap->left = (((void *)0));
593 swap->right->parent = swap->parent;
594 if(swap == swap->parent->left)
595 swap->parent->left = swap->right;
596 else if(swap == swap->parent->right)
597 swap->parent->right = swap->right;
598 swap->right = (((void *)0));
600 if(swap == swap->parent->left)
601 swap->parent->left = (((void *)0));
602 else if(swap == swap->parent->right)
603 swap->parent->right = (((void *)0));
605 struct __ecereNameSpace__ecere__sys__BTNode * n;
607 for(n = swap->parent; n; n = n->parent)
609 int __simpleStruct0, __simpleStruct1;
610 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
612 if(newDepth == n->depth)
620 swap->left = this->left;
622 this->left->parent = swap;
625 swap->right = this->right;
627 this->right->parent = swap;
629 swap->parent = this->parent;
630 this->left = (((void *)0));
631 this->right = (((void *)0));
634 if(this == this->parent->left)
635 this->parent->left = swap;
636 else if(this == this->parent->right)
637 this->parent->right = swap;
641 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance();
643 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwapLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
645 struct __ecereNameSpace__ecere__sys__BTNode * swap = this->left ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(this->left) : this->right;
646 struct __ecereNameSpace__ecere__sys__BTNode * swapParent = (((void *)0));
650 swapParent = swap->parent;
651 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(this, swap);
655 if(this == this->parent->left)
656 this->parent->left = (((void *)0));
657 else if(this == this->parent->right)
658 this->parent->right = (((void *)0));
661 struct __ecereNameSpace__ecere__sys__BTNode * n;
663 for(n = swap ? swap : this->parent; n; n = n->parent)
665 int __simpleStruct0, __simpleStruct1;
666 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
668 if(newDepth == n->depth && n != swap)
673 if(swapParent && swapParent != this)
674 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swapParent);
676 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swap);
677 else if(this->parent)
678 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(this->parent);
680 return (((void *)0));
683 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwapRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
685 struct __ecereNameSpace__ecere__sys__BTNode * result;
686 struct __ecereNameSpace__ecere__sys__BTNode * swap = this->right ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(this->right) : this->left;
687 struct __ecereNameSpace__ecere__sys__BTNode * swapParent = (((void *)0));
691 swapParent = swap->parent;
692 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(this, swap);
696 if(this == this->parent->left)
697 this->parent->left = (((void *)0));
698 else if(this == this->parent->right)
699 this->parent->right = (((void *)0));
702 struct __ecereNameSpace__ecere__sys__BTNode * n;
704 for(n = swap ? swap : this->parent; n; n = n->parent)
706 int __simpleStruct0, __simpleStruct1;
707 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
709 if(newDepth == n->depth && n != swap)
714 if(swapParent && swapParent != this)
715 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swapParent);
717 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swap);
718 else if(this->parent)
719 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(this->parent);
721 result = (((void *)0));
725 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(struct __ecereNameSpace__ecere__sys__BTNode * this)
727 int leftDepth = this->left ? (this->left->depth + 1) : 0;
728 int rightDepth = this->right ? (this->right->depth + 1) : 0;
730 return rightDepth - leftDepth;
733 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight();
735 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight();
737 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft();
739 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft();
741 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(struct __ecereNameSpace__ecere__sys__BTNode * this)
745 int factor = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this);
749 if(__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this->left) == 1)
750 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight(this);
752 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this);
756 if(__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this->right) == -1)
757 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft(this);
759 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this);
768 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
770 int __simpleStruct2, __simpleStruct3;
771 int __simpleStruct0, __simpleStruct1;
775 if(this == this->parent->left)
776 this->parent->left = this->left;
777 else if(this == this->parent->right)
778 this->parent->right = this->left;
780 this->left->parent = this->parent;
781 this->parent = this->left;
782 this->left = this->parent->right;
784 this->left->parent = this;
785 this->parent->right = this;
786 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
787 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);
789 struct __ecereNameSpace__ecere__sys__BTNode * n;
791 for(n = this->parent->parent; n; n = n->parent)
793 int __simpleStruct0, __simpleStruct1;
794 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
796 if(newDepth == n->depth)
803 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
805 int __simpleStruct2, __simpleStruct3;
806 int __simpleStruct0, __simpleStruct1;
810 if(this == this->parent->right)
811 this->parent->right = this->right;
812 else if(this == this->parent->left)
813 this->parent->left = this->right;
815 this->right->parent = this->parent;
816 this->parent = this->right;
817 this->right = this->parent->left;
819 this->right->parent = this;
820 this->parent->left = this;
821 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
822 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);
824 struct __ecereNameSpace__ecere__sys__BTNode * n;
826 for(n = this->parent->parent; n; n = n->parent)
828 int __simpleStruct0, __simpleStruct1;
829 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
831 if(newDepth == n->depth)
838 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
840 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this->left);
841 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this);
844 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
846 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this->right);
847 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this);
850 extern char * strcat(char * , const char * );
852 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int wantedDepth, int curDepth, int maxDepth, unsigned int last);
854 char * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int tps)
863 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
865 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(this->left, output, tps);
867 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
869 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(this->right, output, tps);
871 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
876 int maxDepth = this->depth;
879 for(curDepth = 0; curDepth <= maxDepth; curDepth++)
883 for(c = 0; c < ((1 << (maxDepth - curDepth)) - 1) * 4 / 2; c++)
885 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(this, output, curDepth, 0, maxDepth, 0x1);
886 strcat(output, "\n");
891 return (((void *)0));
894 extern int sprintf(char * , char * , ...);
896 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int wantedDepth, int curDepth, int maxDepth, unsigned int last)
900 if(wantedDepth == curDepth)
902 char nodeString[10] = "";
906 sprintf(nodeString, "%d", this->key);
907 len = strlen(nodeString);
908 for(c = 0; c < (4 - len) / 2; c++)
911 strcat(output, nodeString);
912 for(c = len; c < 4; c++)
914 if(curDepth && !last)
916 for(c = 0; c < ((1 << (maxDepth - curDepth)) - 1) * 4; c++)
920 else if(curDepth <= maxDepth)
922 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth((this ? this->left : (struct __ecereNameSpace__ecere__sys__BTNode *)(((void *)0))), output, wantedDepth, curDepth + 1, maxDepth, last && this && !this->right);
923 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth((this ? this->right : (struct __ecereNameSpace__ecere__sys__BTNode *)(((void *)0))), output, wantedDepth, curDepth + 1, maxDepth, last);
927 extern int printf(char * , ...);
929 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree)
931 unsigned int valid = 0x1;
932 int leftHeight = this->left ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->left) + 1 : 0;
933 int rightHeight = this->right ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->right) + 1 : 0;
934 int diffHeight = rightHeight - leftHeight;
938 if(this->left->parent != this)
940 printf("Parent not set properly at node %d\n", this->left->key);
943 valid *= __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(this->left, tree);
947 if(this->right->parent != this)
949 printf("Parent not set properly at node %d\n", this->right->key);
952 valid *= __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(this->right, tree);
954 if(this->depth != __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this))
956 printf("Depth value at node %d (%d) doesn't match depth property (%d)\n", this->key, this->depth, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this));
957 valid = (unsigned int)0;
959 if(diffHeight < -1 || diffHeight > 1)
961 valid = (unsigned int)0;
962 printf("Height difference is %d at node %d\n", diffHeight, this->key);
964 if(diffHeight != __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this))
966 valid = (unsigned int)0;
967 printf("Height difference %d doesnt match balance-factor of %d at node \n", diffHeight, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this), this->key);
969 if(this->left && tree->CompareKey(tree, this->left->key, this->key) > 0)
972 printf("Node %d is *smaller* than left subtree %d\n", this->key, this->left->key);
974 if(this->right && tree->CompareKey(tree, this->right->key, this->key) < 0)
977 printf("Node %d is *greater* than right subtree %d\n", this->key, this->right->key);
982 struct __ecereNameSpace__ecere__sys__StringBTNode
985 struct __ecereNameSpace__ecere__sys__StringBTNode * parent, * left, * right;
987 } __attribute__ ((gcc_struct));
989 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__StringBTNode;
991 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
993 void __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnSerialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__sys__StringBTNode * this, struct __ecereNameSpace__ecere__com__Instance * channel)
995 if((struct __ecereNameSpace__ecere__sys__StringBTNode *)this)
997 unsigned int truth = 0x1;
999 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_bool, &truth);
1000 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_String, this->key);
1001 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, this->left);
1002 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, this->right);
1006 unsigned int nothing = 0;
1008 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uint, ¬hing);
1012 void __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__sys__StringBTNode ** this, struct __ecereNameSpace__ecere__com__Instance * channel)
1016 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_bool, &truth);
1019 (*(this)) = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__StringBTNode);
1020 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_String, &(*(this))->key);
1021 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, &(*(this))->left);
1024 (*(this))->left->parent = (void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this;
1026 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, &(*(this))->right);
1027 if((*(this))->right)
1029 (*(this))->right->parent = (void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this;
1031 (*(this))->depth = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(((struct __ecereNameSpace__ecere__sys__BTNode *)((void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this)));
1034 (*(this)) = (((void *)0));
1037 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char * name, char * baseName, int size, int sizeClass, unsigned int (* )(void * ), void (* )(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
1039 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
1041 struct __ecereNameSpace__ecere__com__NameSpace
1044 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
1045 struct __ecereNameSpace__ecere__com__NameSpace * left;
1046 struct __ecereNameSpace__ecere__com__NameSpace * right;
1048 struct __ecereNameSpace__ecere__com__NameSpace * parent;
1049 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
1050 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1051 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
1052 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
1053 } __attribute__ ((gcc_struct));
1055 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
1057 struct __ecereNameSpace__ecere__com__Module
1059 struct __ecereNameSpace__ecere__com__Instance * application;
1060 struct __ecereNameSpace__ecere__sys__OldList classes;
1061 struct __ecereNameSpace__ecere__sys__OldList defines;
1062 struct __ecereNameSpace__ecere__sys__OldList functions;
1063 struct __ecereNameSpace__ecere__sys__OldList modules;
1064 struct __ecereNameSpace__ecere__com__Instance * prev;
1065 struct __ecereNameSpace__ecere__com__Instance * next;
1071 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1072 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1073 } __attribute__ ((gcc_struct));
1075 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
1077 extern void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value);
1079 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
1081 struct __ecereNameSpace__ecere__com__GlobalFunction;
1083 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char * name, char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
1085 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode);
1087 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, unsigned int size, unsigned int alignment, int declMode);
1089 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_AddProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * dataType, void * setStmt, void * getStmt, int declMode);
1091 void __ecereRegisterModule_BTNode(struct __ecereNameSpace__ecere__com__Instance * module)
1093 struct __ecereNameSpace__ecere__com__Class * class;
1095 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::TreePrintStyle", 0, 0, 0, 0, 0, module, 4, 1);
1096 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1097 __ecereClass___ecereNameSpace__ecere__sys__TreePrintStyle = class;
1098 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "inOrder", 0);
1099 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "postOrder", 1);
1100 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preOrder", 2);
1101 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "depthOrder", 3);
1102 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::strcatf", "void ecere::sys::strcatf(char * string, char * format, ...)", __ecereNameSpace__ecere__sys__strcatf, module, 4);
1103 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::BTNode", 0, sizeof(struct __ecereNameSpace__ecere__sys__BTNode), 0, 0, 0, module, 4, 1);
1104 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1105 __ecereClass___ecereNameSpace__ecere__sys__BTNode = class;
1106 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnSerialize, 1);
1107 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnUnserialize, 1);
1108 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindPrefix", "ecere::sys::BTNode FindPrefix(char * key)", __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindPrefix, 1);
1109 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindString", "ecere::sys::BTNode FindString(char * key)", __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindString, 1);
1110 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "uintptr", 4, 4, 1);
1111 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::sys::BTNode", 4, 4, 1);
1112 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::sys::BTNode", 4, 4, 1);
1113 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::sys::BTNode", 4, 4, 1);
1114 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
1115 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "prev", "ecere::sys::BTNode", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_prev, 1);
1116 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1117 __ecereProp___ecereNameSpace__ecere__sys__BTNode_prev = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev = (void *)0;
1118 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "next", "ecere::sys::BTNode", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next, 1);
1119 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1120 __ecereProp___ecereNameSpace__ecere__sys__BTNode_next = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next = (void *)0;
1121 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "minimum", "ecere::sys::BTNode", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum, 1);
1122 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1123 __ecereProp___ecereNameSpace__ecere__sys__BTNode_minimum = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum = (void *)0;
1124 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "maximum", "ecere::sys::BTNode", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum, 1);
1125 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1126 __ecereProp___ecereNameSpace__ecere__sys__BTNode_maximum = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum = (void *)0;
1127 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "count", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count, 1);
1128 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1129 __ecereProp___ecereNameSpace__ecere__sys__BTNode_count = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = (void *)0;
1130 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "depthProp", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp, 1);
1131 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1132 __ecereProp___ecereNameSpace__ecere__sys__BTNode_depthProp = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = (void *)0;
1133 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "balanceFactor", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor, 2);
1134 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1135 __ecereProp___ecereNameSpace__ecere__sys__BTNode_balanceFactor = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = (void *)0;
1137 class->fixed = (unsigned int)1;
1138 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::StringBTNode", 0, sizeof(struct __ecereNameSpace__ecere__sys__StringBTNode), 0, 0, 0, module, 4, 1);
1139 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1140 __ecereClass___ecereNameSpace__ecere__sys__StringBTNode = class;
1141 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnSerialize, 1);
1142 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnUnserialize, 1);
1143 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "String", 4, 4, 1);
1144 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::sys::StringBTNode", 4, 4, 1);
1145 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::sys::StringBTNode", 4, 4, 1);
1146 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::sys::StringBTNode", 4, 4, 1);
1147 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
1149 class->fixed = (unsigned int)1;
1152 void __ecereUnregisterModule_BTNode(struct __ecereNameSpace__ecere__com__Instance * module)
1155 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev = (void *)0;
1156 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next = (void *)0;
1157 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum = (void *)0;
1158 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum = (void *)0;
1159 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = (void *)0;
1160 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = (void *)0;
1161 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = (void *)0;