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
25 struct __ecereNameSpace__ecere__sys__BTNode
28 struct __ecereNameSpace__ecere__sys__BTNode * parent, * left, * right;
32 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
34 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
36 struct __ecereNameSpace__ecere__sys__BinaryTree
38 struct __ecereNameSpace__ecere__sys__BTNode * root;
40 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, unsigned int a, unsigned int b);
41 void (* FreeKey)(void * key);
44 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
46 struct __ecereNameSpace__ecere__sys__OldList
55 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
57 struct __ecereNameSpace__ecere__com__Class
59 struct __ecereNameSpace__ecere__com__Class * prev;
60 struct __ecereNameSpace__ecere__com__Class * next;
66 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
67 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
70 struct __ecereNameSpace__ecere__com__Class * base;
71 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
72 struct __ecereNameSpace__ecere__sys__BinaryTree members;
73 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
74 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
75 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
76 struct __ecereNameSpace__ecere__sys__OldList derivatives;
80 struct __ecereNameSpace__ecere__com__Instance * module;
81 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
82 char * dataTypeString;
83 struct __ecereNameSpace__ecere__com__Instance * dataType;
86 void (* Initialize)();
88 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
90 unsigned int noExpansion;
91 char * defaultProperty;
92 unsigned int comRedefinition;
94 unsigned int isRemote;
95 unsigned int internalDecl;
97 unsigned int computeSize;
99 int destructionWatchOffset;
101 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
102 int inheritanceAccess;
105 struct __ecereNameSpace__ecere__sys__OldList conversions;
106 struct __ecereNameSpace__ecere__sys__OldList templateParams;
107 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
108 struct __ecereNameSpace__ecere__com__Class * templateClass;
109 struct __ecereNameSpace__ecere__sys__OldList templatized;
113 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
115 struct __ecereNameSpace__ecere__com__Instance
118 struct __ecereNameSpace__ecere__com__Class * _class;
122 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
124 struct __ecereNameSpace__ecere__com__Property
126 struct __ecereNameSpace__ecere__com__Property * prev;
127 struct __ecereNameSpace__ecere__com__Property * next;
129 unsigned int isProperty;
132 struct __ecereNameSpace__ecere__com__Class * _class;
133 char * dataTypeString;
134 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
135 struct __ecereNameSpace__ecere__com__Instance * dataType;
138 unsigned int (* IsSet)();
142 unsigned int conversion;
143 unsigned int watcherOffset;
145 unsigned int compiled;
146 unsigned int selfWatchable;
147 unsigned int isWatchable;
150 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
152 struct __ecereNameSpace__ecere__com__DataMember
154 struct __ecereNameSpace__ecere__com__DataMember * prev;
155 struct __ecereNameSpace__ecere__com__DataMember * next;
157 unsigned int isProperty;
160 struct __ecereNameSpace__ecere__com__Class * _class;
161 char * dataTypeString;
162 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
163 struct __ecereNameSpace__ecere__com__Instance * dataType;
167 struct __ecereNameSpace__ecere__sys__OldList members;
168 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
173 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
175 struct __ecereNameSpace__ecere__com__Method
178 struct __ecereNameSpace__ecere__com__Method * parent;
179 struct __ecereNameSpace__ecere__com__Method * left;
180 struct __ecereNameSpace__ecere__com__Method * right;
185 struct __ecereNameSpace__ecere__com__Class * _class;
187 char * dataTypeString;
188 struct __ecereNameSpace__ecere__com__Instance * dataType;
192 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
194 struct __ecereNameSpace__ecere__com__SerialBuffer
196 unsigned char * _buffer;
202 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
204 struct __ecereNameSpace__ecere__com__DataValue
222 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
224 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
230 char * dataTypeString;
231 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
233 struct __ecereNameSpace__ecere__com__DataValue expression;
239 struct __ecereNameSpace__ecere__com__DataMember * member;
240 struct __ecereNameSpace__ecere__com__Property * prop;
241 struct __ecereNameSpace__ecere__com__Method * method;
247 typedef __builtin_va_list __gnuc_va_list;
249 typedef __gnuc_va_list va_list;
251 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TreePrintStyle;
253 extern int vsprintf(char * , const char * , __builtin_va_list);
255 extern int strlen(const char * );
257 void __ecereNameSpace__ecere__sys__strcatf(char * string, char * format, ...)
261 __builtin_va_start(args, format);
262 vsprintf(string + strlen(string), format, args);
263 __builtin_va_end(args);
266 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_prev, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev;
268 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_next, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next;
270 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_count, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count;
272 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_balanceFactor, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor;
274 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data);
276 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_bool;
278 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uint;
280 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)
282 if((struct __ecereNameSpace__ecere__sys__BTNode *)this)
284 unsigned int truth = 0x1;
286 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_bool, &truth);
287 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uint, &this->key);
288 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, this->left);
289 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, this->right);
293 unsigned int nothing = 0;
295 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uint, ¬hing);
299 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
301 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data);
303 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(struct __ecereNameSpace__ecere__sys__BTNode * this);
305 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_depthProp, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp;
307 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)
311 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_bool, &truth);
314 (*(this)) = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__BTNode);
315 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_uint, &(*(this))->key);
316 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, &(*(this))->left);
319 (*(this))->left->parent = (void *)*(struct __ecereNameSpace__ecere__sys__BTNode **)this;
321 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, &(*(this))->right);
324 (*(this))->right->parent = (void *)*(struct __ecereNameSpace__ecere__sys__BTNode **)this;
326 (*(this))->depth = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(((struct __ecereNameSpace__ecere__sys__BTNode *)(void *)*(struct __ecereNameSpace__ecere__sys__BTNode **)this));
329 (*(this)) = (((void *)0));
332 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(struct __ecereNameSpace__ecere__sys__BTNode * this);
334 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_maximum, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum;
336 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_prev(struct __ecereNameSpace__ecere__sys__BTNode * this)
339 return __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(this->left);
342 if(this->parent && this == this->parent->right)
350 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(struct __ecereNameSpace__ecere__sys__BTNode * this);
352 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_minimum, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum;
354 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this)
356 struct __ecereNameSpace__ecere__sys__BTNode * right = this->right;
359 return __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(right);
362 struct __ecereNameSpace__ecere__sys__BTNode * parent = this->parent;
364 if(parent && this == parent->left)
369 return (((void *)0));
372 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(struct __ecereNameSpace__ecere__sys__BTNode * this)
379 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(struct __ecereNameSpace__ecere__sys__BTNode * this)
386 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count(struct __ecereNameSpace__ecere__sys__BTNode * this)
388 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);
391 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(struct __ecereNameSpace__ecere__sys__BTNode * this)
393 int leftDepth = this->left ? (__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->left) + 1) : 0;
394 int rightDepth = this->right ? (__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->right) + 1) : 0;
396 return ((leftDepth > rightDepth) ? leftDepth : rightDepth);
399 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(struct __ecereNameSpace__ecere__sys__BTNode * this, void (* FreeKey)(void * key))
402 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(this->left, FreeKey);
404 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(this->right, FreeKey);
406 FreeKey((void *)this->key);
407 ((this ? (__ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor ? __ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor(this) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(this)) : 0), this = 0);
410 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)
412 unsigned int newKey = node->key;
416 int result = tree->CompareKey(tree, newKey, this->key);
432 struct __ecereNameSpace__ecere__sys__BTNode * n;
434 for(n = this; n; n = n->parent)
436 int __simpleStruct0, __simpleStruct1;
437 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
439 if(newDepth == n->depth)
457 struct __ecereNameSpace__ecere__sys__BTNode * n;
459 for(n = this; n; n = n->parent)
461 int __simpleStruct0, __simpleStruct1;
462 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
464 if(newDepth == n->depth)
475 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindNode(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BTNode * node)
479 else if(this->left && __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindNode(this->left, node))
481 else if(this->right && __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindNode(this->right, node))
486 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Find(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree, unsigned int key)
490 int result = tree->CompareKey(tree, key, this->key);
502 extern int strcmp(const char * , const char * );
504 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindString(struct __ecereNameSpace__ecere__sys__BTNode * this, char * key)
508 int result = strcmp(key, (char *)this->key);
520 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(struct __ecereNameSpace__ecere__sys__BTNode * this, unsigned int key)
522 struct __ecereNameSpace__ecere__sys__BTNode * result = (((void *)0));
526 if(!result && this->left)
527 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(this->left, key);
528 if(!result && this->right)
529 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(this->right, key);
533 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BTNode * swap)
537 swap->left->parent = swap->parent;
538 if(swap == swap->parent->left)
539 swap->parent->left = swap->left;
540 else if(swap == swap->parent->right)
541 swap->parent->right = swap->left;
542 swap->left = (((void *)0));
546 swap->right->parent = swap->parent;
547 if(swap == swap->parent->left)
548 swap->parent->left = swap->right;
549 else if(swap == swap->parent->right)
550 swap->parent->right = swap->right;
551 swap->right = (((void *)0));
553 if(swap == swap->parent->left)
554 swap->parent->left = (((void *)0));
555 else if(swap == swap->parent->right)
556 swap->parent->right = (((void *)0));
558 struct __ecereNameSpace__ecere__sys__BTNode * n;
560 for(n = swap->parent; n; n = n->parent)
562 int __simpleStruct0, __simpleStruct1;
563 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
565 if(newDepth == n->depth)
573 swap->left = this->left;
575 this->left->parent = swap;
578 swap->right = this->right;
580 this->right->parent = swap;
582 swap->parent = this->parent;
583 this->left = (((void *)0));
584 this->right = (((void *)0));
587 if(this == this->parent->left)
588 this->parent->left = swap;
589 else if(this == this->parent->right)
590 this->parent->right = swap;
594 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance();
596 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwapLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
598 struct __ecereNameSpace__ecere__sys__BTNode * swap = this->left ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(this->left) : this->right;
599 struct __ecereNameSpace__ecere__sys__BTNode * swapParent = (((void *)0));
603 swapParent = swap->parent;
604 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(this, swap);
608 if(this == this->parent->left)
609 this->parent->left = (((void *)0));
610 else if(this == this->parent->right)
611 this->parent->right = (((void *)0));
614 struct __ecereNameSpace__ecere__sys__BTNode * n;
616 for(n = swap ? swap : this->parent; n; n = n->parent)
618 int __simpleStruct0, __simpleStruct1;
619 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
621 if(newDepth == n->depth && n != swap)
626 if(swapParent && swapParent != this)
627 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swapParent);
629 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swap);
630 else if(this->parent)
631 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(this->parent);
633 return (((void *)0));
636 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwapRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
638 struct __ecereNameSpace__ecere__sys__BTNode * result;
639 struct __ecereNameSpace__ecere__sys__BTNode * swap = this->right ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(this->right) : this->left;
640 struct __ecereNameSpace__ecere__sys__BTNode * swapParent = (((void *)0));
644 swapParent = swap->parent;
645 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(this, swap);
649 if(this == this->parent->left)
650 this->parent->left = (((void *)0));
651 else if(this == this->parent->right)
652 this->parent->right = (((void *)0));
655 struct __ecereNameSpace__ecere__sys__BTNode * n;
657 for(n = swap ? swap : this->parent; n; n = n->parent)
659 int __simpleStruct0, __simpleStruct1;
660 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
662 if(newDepth == n->depth && n != swap)
667 if(swapParent && swapParent != this)
668 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swapParent);
670 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swap);
671 else if(this->parent)
672 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(this->parent);
674 result = (((void *)0));
678 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(struct __ecereNameSpace__ecere__sys__BTNode * this)
680 int leftDepth = this->left ? (this->left->depth + 1) : 0;
681 int rightDepth = this->right ? (this->right->depth + 1) : 0;
683 return rightDepth - leftDepth;
686 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight();
688 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight();
690 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft();
692 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft();
694 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(struct __ecereNameSpace__ecere__sys__BTNode * this)
698 int factor = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this);
702 if(__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this->left) == 1)
703 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight(this);
705 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this);
709 if(__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this->right) == -1)
710 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft(this);
712 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this);
721 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
723 int __simpleStruct2, __simpleStruct3;
724 int __simpleStruct0, __simpleStruct1;
728 if(this == this->parent->left)
729 this->parent->left = this->left;
730 else if(this == this->parent->right)
731 this->parent->right = this->left;
733 this->left->parent = this->parent;
734 this->parent = this->left;
735 this->left = this->parent->right;
737 this->left->parent = this;
738 this->parent->right = this;
739 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
740 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);
742 struct __ecereNameSpace__ecere__sys__BTNode * n;
744 for(n = this->parent->parent; n; n = n->parent)
746 int __simpleStruct0, __simpleStruct1;
747 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
749 if(newDepth == n->depth)
756 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
758 int __simpleStruct2, __simpleStruct3;
759 int __simpleStruct0, __simpleStruct1;
763 if(this == this->parent->right)
764 this->parent->right = this->right;
765 else if(this == this->parent->left)
766 this->parent->left = this->right;
768 this->right->parent = this->parent;
769 this->parent = this->right;
770 this->right = this->parent->left;
772 this->right->parent = this;
773 this->parent->left = this;
774 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
775 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);
777 struct __ecereNameSpace__ecere__sys__BTNode * n;
779 for(n = this->parent->parent; n; n = n->parent)
781 int __simpleStruct0, __simpleStruct1;
782 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
784 if(newDepth == n->depth)
791 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
793 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this->left);
794 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this);
797 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
799 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this->right);
800 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this);
803 extern char * strcat(char * , const char * );
805 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int wantedDepth, int curDepth, int maxDepth, unsigned int last);
807 char * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int tps)
816 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
818 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(this->left, output, tps);
820 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
822 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(this->right, output, tps);
824 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
829 int maxDepth = this->depth;
832 for(curDepth = 0; curDepth <= maxDepth; curDepth++)
836 for(c = 0; c < ((1 << (maxDepth - curDepth)) - 1) * 4 / 2; c++)
838 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(this, output, curDepth, 0, maxDepth, 0x1);
839 strcat(output, "\n");
844 return (((void *)0));
847 extern int sprintf(char * , char * , ...);
849 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int wantedDepth, int curDepth, int maxDepth, unsigned int last)
853 if(wantedDepth == curDepth)
855 char nodeString[10] = "";
859 sprintf(nodeString, "%d", this->key);
860 len = strlen(nodeString);
861 for(c = 0; c < (4 - len) / 2; c++)
864 strcat(output, nodeString);
865 for(c = len; c < 4; c++)
867 if(curDepth && !last)
869 for(c = 0; c < ((1 << (maxDepth - curDepth)) - 1) * 4; c++)
873 else if(curDepth <= maxDepth)
875 __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);
876 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth((this ? this->right : (struct __ecereNameSpace__ecere__sys__BTNode *)(((void *)0))), output, wantedDepth, curDepth + 1, maxDepth, last);
880 extern int printf(char * , ...);
882 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree)
884 unsigned int valid = 0x1;
885 int leftHeight = this->left ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->left) + 1 : 0;
886 int rightHeight = this->right ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->right) + 1 : 0;
887 int diffHeight = rightHeight - leftHeight;
891 if(this->left->parent != this)
893 printf("Parent not set properly at node %d\n", this->left->key);
896 valid *= __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(this->left, tree);
900 if(this->right->parent != this)
902 printf("Parent not set properly at node %d\n", this->right->key);
905 valid *= __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(this->right, tree);
907 if(this->depth != __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this))
909 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));
910 valid = (unsigned int)0;
912 if(diffHeight < -1 || diffHeight > 1)
914 valid = (unsigned int)0;
915 printf("Height difference is %d at node %d\n", diffHeight, this->key);
917 if(diffHeight != __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this))
919 valid = (unsigned int)0;
920 printf("Height difference %d doesnt match balance-factor of %d at node \n", diffHeight, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this), this->key);
922 if(this->left && tree->CompareKey(tree, this->left->key, this->key) > 0)
925 printf("Node %d is *smaller* than left subtree %d\n", this->key, this->left->key);
927 if(this->right && tree->CompareKey(tree, this->right->key, this->key) < 0)
930 printf("Node %d is *greater* than right subtree %d\n", this->key, this->right->key);
935 struct __ecereNameSpace__ecere__sys__StringBTNode
938 struct __ecereNameSpace__ecere__sys__StringBTNode * parent, * left, * right;
942 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__StringBTNode;
944 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
946 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)
948 if((struct __ecereNameSpace__ecere__sys__StringBTNode *)this)
950 unsigned int truth = 0x1;
952 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_bool, &truth);
953 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_String, this->key);
954 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, this->left);
955 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, this->right);
959 unsigned int nothing = 0;
961 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uint, ¬hing);
965 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)
969 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_bool, &truth);
972 (*(this)) = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__StringBTNode);
973 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_String, &(*(this))->key);
974 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, &(*(this))->left);
977 (*(this))->left->parent = (void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this;
979 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, &(*(this))->right);
982 (*(this))->right->parent = (void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this;
984 (*(this))->depth = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(((struct __ecereNameSpace__ecere__sys__BTNode *)((void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this)));
987 (*(this)) = (((void *)0));
990 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);
992 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
994 struct __ecereNameSpace__ecere__com__NameSpace
997 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
998 struct __ecereNameSpace__ecere__com__NameSpace * left;
999 struct __ecereNameSpace__ecere__com__NameSpace * right;
1001 struct __ecereNameSpace__ecere__com__NameSpace * parent;
1002 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
1003 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1004 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
1005 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
1008 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
1010 struct __ecereNameSpace__ecere__com__Module
1012 struct __ecereNameSpace__ecere__com__Instance * application;
1013 struct __ecereNameSpace__ecere__sys__OldList classes;
1014 struct __ecereNameSpace__ecere__sys__OldList defines;
1015 struct __ecereNameSpace__ecere__sys__OldList functions;
1016 struct __ecereNameSpace__ecere__sys__OldList modules;
1017 struct __ecereNameSpace__ecere__com__Instance * prev;
1018 struct __ecereNameSpace__ecere__com__Instance * next;
1023 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1024 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1027 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
1029 extern void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value);
1031 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
1033 struct __ecereNameSpace__ecere__com__GlobalFunction;
1035 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);
1037 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);
1039 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);
1041 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);
1043 void __ecereRegisterModule_BTNode(struct __ecereNameSpace__ecere__com__Instance * module)
1045 struct __ecereNameSpace__ecere__com__Class * class;
1047 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::TreePrintStyle", 0, 0, 0, 0, 0, module, 4, 1);
1048 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1049 __ecereClass___ecereNameSpace__ecere__sys__TreePrintStyle = class;
1050 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "inOrder", 0);
1051 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "postOrder", 1);
1052 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preOrder", 2);
1053 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "depthOrder", 3);
1054 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::strcatf", "void ecere::sys::strcatf(char * string, char * format, ...)", __ecereNameSpace__ecere__sys__strcatf, module, 4);
1055 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::BTNode", 0, sizeof(struct __ecereNameSpace__ecere__sys__BTNode), 0, 0, 0, module, 4, 1);
1056 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1057 __ecereClass___ecereNameSpace__ecere__sys__BTNode = class;
1058 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnSerialize, 1);
1059 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnUnserialize, 1);
1060 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindString", "ecere::sys::BTNode FindString(char * key)", __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindString, 1);
1061 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "uint", 4, 4, 1);
1062 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::sys::BTNode", 4, 4, 1);
1063 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::sys::BTNode", 4, 4, 1);
1064 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::sys::BTNode", 4, 4, 1);
1065 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
1066 __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);
1067 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1068 __ecereProp___ecereNameSpace__ecere__sys__BTNode_prev = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev = (void *)0;
1069 __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);
1070 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1071 __ecereProp___ecereNameSpace__ecere__sys__BTNode_next = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next = (void *)0;
1072 __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);
1073 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1074 __ecereProp___ecereNameSpace__ecere__sys__BTNode_minimum = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum = (void *)0;
1075 __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);
1076 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1077 __ecereProp___ecereNameSpace__ecere__sys__BTNode_maximum = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum = (void *)0;
1078 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "count", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count, 1);
1079 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1080 __ecereProp___ecereNameSpace__ecere__sys__BTNode_count = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = (void *)0;
1081 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "depthProp", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp, 1);
1082 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1083 __ecereProp___ecereNameSpace__ecere__sys__BTNode_depthProp = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = (void *)0;
1084 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "balanceFactor", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor, 2);
1085 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1086 __ecereProp___ecereNameSpace__ecere__sys__BTNode_balanceFactor = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = (void *)0;
1088 class->fixed = (unsigned int)1;
1089 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::StringBTNode", 0, sizeof(struct __ecereNameSpace__ecere__sys__StringBTNode), 0, 0, 0, module, 4, 1);
1090 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1091 __ecereClass___ecereNameSpace__ecere__sys__StringBTNode = class;
1092 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnSerialize, 1);
1093 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnUnserialize, 1);
1094 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "String", 4, 4, 1);
1095 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::sys::StringBTNode", 4, 4, 1);
1096 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::sys::StringBTNode", 4, 4, 1);
1097 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::sys::StringBTNode", 4, 4, 1);
1098 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
1100 class->fixed = (unsigned int)1;
1103 void __ecereUnregisterModule_BTNode(struct __ecereNameSpace__ecere__com__Instance * module)
1106 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev = (void *)0;
1107 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next = (void *)0;
1108 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum = (void *)0;
1109 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum = (void *)0;
1110 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = (void *)0;
1111 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = (void *)0;
1112 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = (void *)0;