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)
511 result = strcmp(key, (char *)this->key);
512 else if(key && !this->key)
514 else if(!key && this->key)
528 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(struct __ecereNameSpace__ecere__sys__BTNode * this, unsigned int key)
530 struct __ecereNameSpace__ecere__sys__BTNode * result = (((void *)0));
534 if(!result && this->left)
535 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(this->left, key);
536 if(!result && this->right)
537 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(this->right, key);
541 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BTNode * swap)
545 swap->left->parent = swap->parent;
546 if(swap == swap->parent->left)
547 swap->parent->left = swap->left;
548 else if(swap == swap->parent->right)
549 swap->parent->right = swap->left;
550 swap->left = (((void *)0));
554 swap->right->parent = swap->parent;
555 if(swap == swap->parent->left)
556 swap->parent->left = swap->right;
557 else if(swap == swap->parent->right)
558 swap->parent->right = swap->right;
559 swap->right = (((void *)0));
561 if(swap == swap->parent->left)
562 swap->parent->left = (((void *)0));
563 else if(swap == swap->parent->right)
564 swap->parent->right = (((void *)0));
566 struct __ecereNameSpace__ecere__sys__BTNode * n;
568 for(n = swap->parent; n; n = n->parent)
570 int __simpleStruct0, __simpleStruct1;
571 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
573 if(newDepth == n->depth)
581 swap->left = this->left;
583 this->left->parent = swap;
586 swap->right = this->right;
588 this->right->parent = swap;
590 swap->parent = this->parent;
591 this->left = (((void *)0));
592 this->right = (((void *)0));
595 if(this == this->parent->left)
596 this->parent->left = swap;
597 else if(this == this->parent->right)
598 this->parent->right = swap;
602 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance();
604 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwapLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
606 struct __ecereNameSpace__ecere__sys__BTNode * swap = this->left ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(this->left) : this->right;
607 struct __ecereNameSpace__ecere__sys__BTNode * swapParent = (((void *)0));
611 swapParent = swap->parent;
612 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(this, swap);
616 if(this == this->parent->left)
617 this->parent->left = (((void *)0));
618 else if(this == this->parent->right)
619 this->parent->right = (((void *)0));
622 struct __ecereNameSpace__ecere__sys__BTNode * n;
624 for(n = swap ? swap : this->parent; n; n = n->parent)
626 int __simpleStruct0, __simpleStruct1;
627 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
629 if(newDepth == n->depth && n != swap)
634 if(swapParent && swapParent != this)
635 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swapParent);
637 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swap);
638 else if(this->parent)
639 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(this->parent);
641 return (((void *)0));
644 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwapRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
646 struct __ecereNameSpace__ecere__sys__BTNode * result;
647 struct __ecereNameSpace__ecere__sys__BTNode * swap = this->right ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(this->right) : this->left;
648 struct __ecereNameSpace__ecere__sys__BTNode * swapParent = (((void *)0));
652 swapParent = swap->parent;
653 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(this, swap);
657 if(this == this->parent->left)
658 this->parent->left = (((void *)0));
659 else if(this == this->parent->right)
660 this->parent->right = (((void *)0));
663 struct __ecereNameSpace__ecere__sys__BTNode * n;
665 for(n = swap ? swap : this->parent; n; n = n->parent)
667 int __simpleStruct0, __simpleStruct1;
668 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
670 if(newDepth == n->depth && n != swap)
675 if(swapParent && swapParent != this)
676 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swapParent);
678 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swap);
679 else if(this->parent)
680 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(this->parent);
682 result = (((void *)0));
686 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(struct __ecereNameSpace__ecere__sys__BTNode * this)
688 int leftDepth = this->left ? (this->left->depth + 1) : 0;
689 int rightDepth = this->right ? (this->right->depth + 1) : 0;
691 return rightDepth - leftDepth;
694 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight();
696 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight();
698 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft();
700 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft();
702 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(struct __ecereNameSpace__ecere__sys__BTNode * this)
706 int factor = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this);
710 if(__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this->left) == 1)
711 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight(this);
713 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this);
717 if(__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this->right) == -1)
718 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft(this);
720 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this);
729 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
731 int __simpleStruct2, __simpleStruct3;
732 int __simpleStruct0, __simpleStruct1;
736 if(this == this->parent->left)
737 this->parent->left = this->left;
738 else if(this == this->parent->right)
739 this->parent->right = this->left;
741 this->left->parent = this->parent;
742 this->parent = this->left;
743 this->left = this->parent->right;
745 this->left->parent = this;
746 this->parent->right = this;
747 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
748 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);
750 struct __ecereNameSpace__ecere__sys__BTNode * n;
752 for(n = this->parent->parent; n; n = n->parent)
754 int __simpleStruct0, __simpleStruct1;
755 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
757 if(newDepth == n->depth)
764 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
766 int __simpleStruct2, __simpleStruct3;
767 int __simpleStruct0, __simpleStruct1;
771 if(this == this->parent->right)
772 this->parent->right = this->right;
773 else if(this == this->parent->left)
774 this->parent->left = this->right;
776 this->right->parent = this->parent;
777 this->parent = this->right;
778 this->right = this->parent->left;
780 this->right->parent = this;
781 this->parent->left = this;
782 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
783 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);
785 struct __ecereNameSpace__ecere__sys__BTNode * n;
787 for(n = this->parent->parent; n; n = n->parent)
789 int __simpleStruct0, __simpleStruct1;
790 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
792 if(newDepth == n->depth)
799 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
801 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this->left);
802 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this);
805 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
807 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this->right);
808 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this);
811 extern char * strcat(char * , const char * );
813 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int wantedDepth, int curDepth, int maxDepth, unsigned int last);
815 char * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int tps)
824 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
826 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(this->left, output, tps);
828 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
830 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(this->right, output, tps);
832 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
837 int maxDepth = this->depth;
840 for(curDepth = 0; curDepth <= maxDepth; curDepth++)
844 for(c = 0; c < ((1 << (maxDepth - curDepth)) - 1) * 4 / 2; c++)
846 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(this, output, curDepth, 0, maxDepth, 0x1);
847 strcat(output, "\n");
852 return (((void *)0));
855 extern int sprintf(char * , char * , ...);
857 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int wantedDepth, int curDepth, int maxDepth, unsigned int last)
861 if(wantedDepth == curDepth)
863 char nodeString[10] = "";
867 sprintf(nodeString, "%d", this->key);
868 len = strlen(nodeString);
869 for(c = 0; c < (4 - len) / 2; c++)
872 strcat(output, nodeString);
873 for(c = len; c < 4; c++)
875 if(curDepth && !last)
877 for(c = 0; c < ((1 << (maxDepth - curDepth)) - 1) * 4; c++)
881 else if(curDepth <= maxDepth)
883 __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);
884 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth((this ? this->right : (struct __ecereNameSpace__ecere__sys__BTNode *)(((void *)0))), output, wantedDepth, curDepth + 1, maxDepth, last);
888 extern int printf(char * , ...);
890 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree)
892 unsigned int valid = 0x1;
893 int leftHeight = this->left ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->left) + 1 : 0;
894 int rightHeight = this->right ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->right) + 1 : 0;
895 int diffHeight = rightHeight - leftHeight;
899 if(this->left->parent != this)
901 printf("Parent not set properly at node %d\n", this->left->key);
904 valid *= __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(this->left, tree);
908 if(this->right->parent != this)
910 printf("Parent not set properly at node %d\n", this->right->key);
913 valid *= __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(this->right, tree);
915 if(this->depth != __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this))
917 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));
918 valid = (unsigned int)0;
920 if(diffHeight < -1 || diffHeight > 1)
922 valid = (unsigned int)0;
923 printf("Height difference is %d at node %d\n", diffHeight, this->key);
925 if(diffHeight != __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this))
927 valid = (unsigned int)0;
928 printf("Height difference %d doesnt match balance-factor of %d at node \n", diffHeight, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this), this->key);
930 if(this->left && tree->CompareKey(tree, this->left->key, this->key) > 0)
933 printf("Node %d is *smaller* than left subtree %d\n", this->key, this->left->key);
935 if(this->right && tree->CompareKey(tree, this->right->key, this->key) < 0)
938 printf("Node %d is *greater* than right subtree %d\n", this->key, this->right->key);
943 struct __ecereNameSpace__ecere__sys__StringBTNode
946 struct __ecereNameSpace__ecere__sys__StringBTNode * parent, * left, * right;
950 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__StringBTNode;
952 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
954 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)
956 if((struct __ecereNameSpace__ecere__sys__StringBTNode *)this)
958 unsigned int truth = 0x1;
960 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_bool, &truth);
961 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_String, this->key);
962 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, this->left);
963 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, this->right);
967 unsigned int nothing = 0;
969 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uint, ¬hing);
973 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)
977 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_bool, &truth);
980 (*(this)) = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__StringBTNode);
981 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_String, &(*(this))->key);
982 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, &(*(this))->left);
985 (*(this))->left->parent = (void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this;
987 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, &(*(this))->right);
990 (*(this))->right->parent = (void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this;
992 (*(this))->depth = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(((struct __ecereNameSpace__ecere__sys__BTNode *)((void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this)));
995 (*(this)) = (((void *)0));
998 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);
1000 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
1002 struct __ecereNameSpace__ecere__com__NameSpace
1005 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
1006 struct __ecereNameSpace__ecere__com__NameSpace * left;
1007 struct __ecereNameSpace__ecere__com__NameSpace * right;
1009 struct __ecereNameSpace__ecere__com__NameSpace * parent;
1010 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
1011 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1012 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
1013 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
1016 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
1018 struct __ecereNameSpace__ecere__com__Module
1020 struct __ecereNameSpace__ecere__com__Instance * application;
1021 struct __ecereNameSpace__ecere__sys__OldList classes;
1022 struct __ecereNameSpace__ecere__sys__OldList defines;
1023 struct __ecereNameSpace__ecere__sys__OldList functions;
1024 struct __ecereNameSpace__ecere__sys__OldList modules;
1025 struct __ecereNameSpace__ecere__com__Instance * prev;
1026 struct __ecereNameSpace__ecere__com__Instance * next;
1031 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1032 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1035 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
1037 extern void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value);
1039 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
1041 struct __ecereNameSpace__ecere__com__GlobalFunction;
1043 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);
1045 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);
1047 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);
1049 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);
1051 void __ecereRegisterModule_BTNode(struct __ecereNameSpace__ecere__com__Instance * module)
1053 struct __ecereNameSpace__ecere__com__Class * class;
1055 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::TreePrintStyle", 0, 0, 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__TreePrintStyle = class;
1058 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "inOrder", 0);
1059 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "postOrder", 1);
1060 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preOrder", 2);
1061 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "depthOrder", 3);
1062 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::strcatf", "void ecere::sys::strcatf(char * string, char * format, ...)", __ecereNameSpace__ecere__sys__strcatf, module, 4);
1063 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::BTNode", 0, sizeof(struct __ecereNameSpace__ecere__sys__BTNode), 0, 0, 0, module, 4, 1);
1064 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1065 __ecereClass___ecereNameSpace__ecere__sys__BTNode = class;
1066 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnSerialize, 1);
1067 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnUnserialize, 1);
1068 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindString", "ecere::sys::BTNode FindString(char * key)", __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindString, 1);
1069 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "uint", 4, 4, 1);
1070 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::sys::BTNode", 4, 4, 1);
1071 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::sys::BTNode", 4, 4, 1);
1072 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::sys::BTNode", 4, 4, 1);
1073 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
1074 __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);
1075 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1076 __ecereProp___ecereNameSpace__ecere__sys__BTNode_prev = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev = (void *)0;
1077 __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);
1078 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1079 __ecereProp___ecereNameSpace__ecere__sys__BTNode_next = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next = (void *)0;
1080 __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);
1081 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1082 __ecereProp___ecereNameSpace__ecere__sys__BTNode_minimum = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum = (void *)0;
1083 __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);
1084 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1085 __ecereProp___ecereNameSpace__ecere__sys__BTNode_maximum = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum = (void *)0;
1086 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "count", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count, 1);
1087 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1088 __ecereProp___ecereNameSpace__ecere__sys__BTNode_count = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = (void *)0;
1089 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "depthProp", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp, 1);
1090 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1091 __ecereProp___ecereNameSpace__ecere__sys__BTNode_depthProp = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = (void *)0;
1092 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "balanceFactor", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor, 2);
1093 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1094 __ecereProp___ecereNameSpace__ecere__sys__BTNode_balanceFactor = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = (void *)0;
1096 class->fixed = (unsigned int)1;
1097 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::StringBTNode", 0, sizeof(struct __ecereNameSpace__ecere__sys__StringBTNode), 0, 0, 0, module, 4, 1);
1098 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1099 __ecereClass___ecereNameSpace__ecere__sys__StringBTNode = class;
1100 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnSerialize, 1);
1101 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnUnserialize, 1);
1102 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "String", 4, 4, 1);
1103 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::sys::StringBTNode", 4, 4, 1);
1104 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::sys::StringBTNode", 4, 4, 1);
1105 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::sys::StringBTNode", 4, 4, 1);
1106 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
1108 class->fixed = (unsigned int)1;
1111 void __ecereUnregisterModule_BTNode(struct __ecereNameSpace__ecere__com__Instance * module)
1114 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev = (void *)0;
1115 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next = (void *)0;
1116 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum = (void *)0;
1117 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum = (void *)0;
1118 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = (void *)0;
1119 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = (void *)0;
1120 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = (void *)0;