compiler/bootstrap: Updated bootstrap
[sdk] / compiler / bootstrap / ecere / bootstrap / OldList.c
1 #if defined(__GNUC__)
2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #elif defined(__TINYC__)
5 #include <stdarg.h>
6 #define __builtin_va_list va_list
7 #define __builtin_va_start va_start
8 #define __builtin_va_end va_end
9 #ifdef _WIN32
10 #define strcasecmp stricmp
11 #define strncasecmp strnicmp
12 #define __declspec(x) __attribute__((x))
13 #endif
14 typedef long long int64;
15 typedef unsigned long long uint64;
16 #else
17 typedef __int64 int64;
18 typedef unsigned __int64 uint64;
19 #endif
20 #ifdef __BIG_ENDIAN__
21 #define __ENDIAN_PAD(x) (8 - (x))
22 #else
23 #define __ENDIAN_PAD(x) 0
24 #endif
25 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
26
27 struct __ecereNameSpace__ecere__sys__BTNode;
28
29 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
30
31 struct __ecereNameSpace__ecere__sys__BinaryTree
32 {
33 struct __ecereNameSpace__ecere__sys__BTNode * root;
34 int count;
35 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, unsigned int a, unsigned int b);
36 void (*  FreeKey)(void *  key);
37 };
38
39 struct __ecereNameSpace__ecere__sys__OldList
40 {
41 void * first, * last;
42 int count;
43 unsigned int offset;
44 unsigned int circ;
45 };
46
47 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
48
49 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
50
51 struct __ecereNameSpace__ecere__com__Class
52 {
53 struct __ecereNameSpace__ecere__com__Class * prev;
54 struct __ecereNameSpace__ecere__com__Class * next;
55 char *  name;
56 int offset;
57 int structSize;
58 int (* *  _vTbl)();
59 int vTblSize;
60 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
61 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
62 int offsetClass;
63 int sizeClass;
64 struct __ecereNameSpace__ecere__com__Class * base;
65 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
66 struct __ecereNameSpace__ecere__sys__BinaryTree members;
67 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
68 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
69 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
70 struct __ecereNameSpace__ecere__sys__OldList derivatives;
71 int memberID;
72 int startMemberID;
73 int type;
74 struct __ecereNameSpace__ecere__com__Instance * module;
75 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
76 char *  dataTypeString;
77 struct __ecereNameSpace__ecere__com__Instance * dataType;
78 int typeSize;
79 int defaultAlignment;
80 void (*  Initialize)();
81 int memberOffset;
82 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
83 char *  designerClass;
84 unsigned int noExpansion;
85 char *  defaultProperty;
86 unsigned int comRedefinition;
87 int count;
88 unsigned int isRemote;
89 unsigned int internalDecl;
90 void *  data;
91 unsigned int computeSize;
92 int structAlignment;
93 int destructionWatchOffset;
94 unsigned int fixed;
95 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
96 int inheritanceAccess;
97 char *  fullName;
98 void *  symbol;
99 struct __ecereNameSpace__ecere__sys__OldList conversions;
100 struct __ecereNameSpace__ecere__sys__OldList templateParams;
101 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
102 struct __ecereNameSpace__ecere__com__Class * templateClass;
103 struct __ecereNameSpace__ecere__sys__OldList templatized;
104 int numParams;
105 };
106
107 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
108
109 struct __ecereNameSpace__ecere__com__Instance
110 {
111 int (* *  _vTbl)();
112 struct __ecereNameSpace__ecere__com__Class * _class;
113 int _refCount;
114 };
115
116 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
117
118 struct __ecereNameSpace__ecere__com__Property
119 {
120 struct __ecereNameSpace__ecere__com__Property * prev;
121 struct __ecereNameSpace__ecere__com__Property * next;
122 char *  name;
123 unsigned int isProperty;
124 int memberAccess;
125 int id;
126 struct __ecereNameSpace__ecere__com__Class * _class;
127 char *  dataTypeString;
128 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
129 struct __ecereNameSpace__ecere__com__Instance * dataType;
130 void (*  Set)();
131 int (*  Get)();
132 unsigned int (*  IsSet)();
133 void *  data;
134 void *  symbol;
135 int vid;
136 unsigned int conversion;
137 unsigned int watcherOffset;
138 char *  category;
139 unsigned int compiled;
140 unsigned int selfWatchable;
141 unsigned int isWatchable;
142 };
143
144 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
145
146 struct __ecereNameSpace__ecere__com__DataMember
147 {
148 struct __ecereNameSpace__ecere__com__DataMember * prev;
149 struct __ecereNameSpace__ecere__com__DataMember * next;
150 char *  name;
151 unsigned int isProperty;
152 int memberAccess;
153 int id;
154 struct __ecereNameSpace__ecere__com__Class * _class;
155 char *  dataTypeString;
156 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
157 struct __ecereNameSpace__ecere__com__Instance * dataType;
158 int type;
159 int offset;
160 int memberID;
161 struct __ecereNameSpace__ecere__sys__OldList members;
162 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
163 int memberOffset;
164 int structAlignment;
165 };
166
167 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
168
169 struct __ecereNameSpace__ecere__com__Method
170 {
171 char *  name;
172 struct __ecereNameSpace__ecere__com__Method * parent;
173 struct __ecereNameSpace__ecere__com__Method * left;
174 struct __ecereNameSpace__ecere__com__Method * right;
175 int depth;
176 int (*  function)();
177 int vid;
178 int type;
179 struct __ecereNameSpace__ecere__com__Class * _class;
180 void *  symbol;
181 char *  dataTypeString;
182 struct __ecereNameSpace__ecere__com__Instance * dataType;
183 int memberAccess;
184 };
185
186 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
187
188 struct __ecereNameSpace__ecere__com__SerialBuffer
189 {
190 unsigned char *  _buffer;
191 unsigned int count;
192 unsigned int _size;
193 unsigned int pos;
194 };
195
196 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
197
198 struct __ecereNameSpace__ecere__com__DataValue
199 {
200 union
201 {
202 char c;
203 unsigned char uc;
204 short s;
205 unsigned short us;
206 int i;
207 unsigned int ui;
208 void *  p;
209 float f;
210 double d;
211 long long i64;
212 uint64 ui64;
213 };
214 };
215
216 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
217
218 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
219 {
220 union
221 {
222 struct
223 {
224 char *  dataTypeString;
225 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
226 };
227 struct __ecereNameSpace__ecere__com__DataValue expression;
228 struct
229 {
230 char *  memberString;
231 union
232 {
233 struct __ecereNameSpace__ecere__com__DataMember * member;
234 struct __ecereNameSpace__ecere__com__Property * prop;
235 struct __ecereNameSpace__ecere__com__Method * method;
236 };
237 };
238 };
239 };
240
241 struct __ecereNameSpace__ecere__sys__Item
242 {
243 struct __ecereNameSpace__ecere__sys__Item * prev, * next;
244 };
245
246 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__Item;
247
248 extern void *  memcpy(void * , const void * , unsigned int size);
249
250 void __ecereMethod___ecereNameSpace__ecere__sys__Item_Copy(struct __ecereNameSpace__ecere__sys__Item * this, struct __ecereNameSpace__ecere__sys__Item * src, int size)
251 {
252 memcpy((unsigned char *)this + sizeof(struct __ecereNameSpace__ecere__sys__Item), (unsigned char *)src + sizeof(struct __ecereNameSpace__ecere__sys__Item), size - sizeof(struct __ecereNameSpace__ecere__sys__Item *));
253 }
254
255 struct __ecereNameSpace__ecere__sys__NamedItem
256 {
257 struct __ecereNameSpace__ecere__sys__NamedItem * prev, * next;
258 char * name;
259 };
260
261 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedItem;
262
263 struct __ecereNameSpace__ecere__sys__OldLink
264 {
265 struct __ecereNameSpace__ecere__sys__OldLink * prev, * next;
266 void * data;
267 };
268
269 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldLink;
270
271 void __ecereMethod___ecereNameSpace__ecere__sys__OldLink_Free(struct __ecereNameSpace__ecere__sys__OldLink * this)
272 {
273 (__ecereNameSpace__ecere__com__eSystem_Delete(this->data), this->data = 0);
274 }
275
276 struct __ecereNameSpace__ecere__sys__NamedLink
277 {
278 struct __ecereNameSpace__ecere__sys__NamedLink * prev, * next;
279 char * name;
280 void * data;
281 };
282
283 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
284
285 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(struct __ecereNameSpace__ecere__sys__OldList * this);
286
287 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void *  item);
288
289 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void *  item);
290
291 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Merge(struct __ecereNameSpace__ecere__sys__OldList * this, struct __ecereNameSpace__ecere__sys__OldList * list1, struct __ecereNameSpace__ecere__sys__OldList * list2, int (* compare)(void *, void *, void *), void * data)
292 {
293 void * item;
294
295 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(this);
296 this->offset = list1->offset;
297 while((list1->first && list2->first))
298 {
299 if(compare(list1->first, list2->first, data) <= 0)
300 {
301 item = list1->first;
302 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list1, item);
303 }
304 else
305 {
306 item = list2->first;
307 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list2, item);
308 }
309 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(this, item);
310 }
311 while((item = list1->first))
312 {
313 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list1, item);
314 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(this, item);
315 }
316 while((item = list2->first))
317 {
318 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list2, item);
319 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(this, item);
320 }
321 }
322
323 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item)
324 {
325 if(item)
326 {
327 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
328
329 link->prev = this->last;
330 if(link->prev)
331 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = item;
332 if(!this->first)
333 this->first = item;
334 this->last = item;
335 link->next = this->circ ? this->first : (((void *)0));
336 if(this->circ)
337 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)this->first + this->offset))->prev = item;
338 this->count++;
339 }
340 }
341
342 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(struct __ecereNameSpace__ecere__sys__OldList * this, void * prevItem, void * item)
343 {
344 if(item && prevItem != item)
345 {
346 struct __ecereNameSpace__ecere__sys__Item * prevLink = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)prevItem + this->offset);
347 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
348
349 link->prev = prevItem ? prevItem : (this->circ ? this->last : (((void *)0)));
350 if(prevItem)
351 {
352 link->next = prevLink->next;
353 prevLink->next = item;
354 }
355 else
356 {
357 link->next = this->first;
358 this->first = item;
359 if(this->circ)
360 {
361 if(link->prev)
362 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = item;
363 else
364 link->next = item;
365 }
366 }
367 if(prevItem == this->last)
368 this->last = item;
369 if(link->next)
370 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->next + this->offset))->prev = item;
371 this->count++;
372 return 0x1;
373 }
374 return 0x0;
375 }
376
377 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item)
378 {
379 if(item)
380 {
381 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
382
383 if(link->prev)
384 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = link->next;
385 if(link->next)
386 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->next + this->offset))->prev = link->prev;
387 if(this->circ && this->last == this->first)
388 this->last = this->first = (((void *)0));
389 else
390 {
391 if(this->last == item)
392 this->last = link->prev;
393 if(this->first == item)
394 this->first = link->next;
395 }
396 link->prev = (((void *)0));
397 link->next = (((void *)0));
398 this->count--;
399 }
400 }
401
402 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(struct __ecereNameSpace__ecere__sys__OldList * this, void * item)
403 {
404 if(item)
405 {
406 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(this, item);
407 (__ecereNameSpace__ecere__com__eSystem_Delete(item), item = 0);
408 }
409 }
410
411 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void *))
412 {
413 void * item, * next;
414
415 for(item = this->first; item; item = next)
416 {
417 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
418
419 next = link->next;
420 if(freeFn)
421 freeFn(item);
422 (__ecereNameSpace__ecere__com__eSystem_Delete(item), item = 0);
423 if(next == this->first)
424 break;
425 }
426 this->first = this->last = (((void *)0));
427 this->count = 0;
428 }
429
430 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_RemoveAll(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void *))
431 {
432 void * item, * next;
433
434 for(item = this->first; item; item = next)
435 {
436 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
437
438 next = link->next;
439 if(freeFn)
440 freeFn(item);
441 if(next == this->first)
442 break;
443 }
444 this->first = this->last = (((void *)0));
445 this->count = 0;
446 }
447
448 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(struct __ecereNameSpace__ecere__sys__OldList * this)
449 {
450 this->offset = 0;
451 this->circ = 0x0;
452 this->count = 0;
453 this->first = this->last = (((void *)0));
454 }
455
456 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Move(struct __ecereNameSpace__ecere__sys__OldList * this, void * item, void * prevItem)
457 {
458 if(item)
459 {
460 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
461 struct __ecereNameSpace__ecere__sys__Item * prevLink = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)prevItem + this->offset);
462
463 if(prevItem != item && (this->first != item || prevItem))
464 {
465 if(link->prev)
466 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = link->next;
467 if(link->next)
468 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->next + this->offset))->prev = link->prev;
469 if(item == this->first)
470 this->first = link->next;
471 if(item == this->last)
472 this->last = link->prev;
473 if(prevItem == this->last)
474 this->last = item;
475 link->prev = prevItem ? prevItem : (this->circ ? this->last : (((void *)0)));
476 if(prevItem)
477 {
478 link->next = prevLink->next;
479 prevLink->next = item;
480 }
481 else
482 {
483 link->next = this->first;
484 this->first = item;
485 if(this->circ)
486 {
487 if(link->prev)
488 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = item;
489 else
490 link->next = item;
491 }
492 }
493 if(link->next)
494 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->next + this->offset))->prev = item;
495 }
496 }
497 }
498
499 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Swap(struct __ecereNameSpace__ecere__sys__OldList * this, void * item1, void * item2)
500 {
501 struct __ecereNameSpace__ecere__sys__Item * link1 = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item1 + this->offset);
502 struct __ecereNameSpace__ecere__sys__Item * link2 = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item2 + this->offset);
503 struct __ecereNameSpace__ecere__sys__Item * prev1 = link1->prev, * next1 = link1->next;
504 void * tmp1 = item1, * tmp2 = item2;
505
506 link1->prev = link2->prev;
507 link1->next = link2->next;
508 link2->prev = prev1;
509 link2->next = next1;
510 if(this->first == tmp1)
511 this->first = item2;
512 else if(this->first == tmp2)
513 this->first = item1;
514 if(this->last == tmp1)
515 this->last = item1;
516 else if(this->last == tmp2)
517 this->last = item2;
518 if(link1->next)
519 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link1->next + this->offset))->prev = item2;
520 if(link1->prev)
521 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link1->prev + this->offset))->next = item2;
522 if(link2->next)
523 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link2->next + this->offset))->prev = item1;
524 if(link2->prev)
525 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link2->prev + this->offset))->next = item1;
526 }
527
528 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Sort(struct __ecereNameSpace__ecere__sys__OldList * this, int (* compare)(void *, void *, void *), void * data)
529 {
530 if(this->first && ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)this->first + this->offset))->next)
531 {
532 struct __ecereNameSpace__ecere__sys__OldList list1, list2;
533 void * middle, * end;
534
535 for(middle = this->first, list1.count = 0, list2.count = 0, end = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)this->first + this->offset))->next; middle && end; middle = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)middle + this->offset))->next, list1.count++, end = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)end + this->offset))->next, list2.count++)
536 {
537 end = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)end + this->offset))->next;
538 if(!end)
539 break;
540 }
541 list1.offset = this->offset;
542 list2.offset = this->offset;
543 list1.circ = this->circ;
544 list2.circ = this->circ;
545 list1.first = this->first;
546 list1.last = middle;
547 list2.first = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)middle + this->offset))->next;
548 list2.last = this->last;
549 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)list1.last + this->offset))->next = (((void *)0));
550 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)list2.first + this->offset))->prev = (((void *)0));
551 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Sort(&list1, compare, data);
552 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Sort(&list2, compare, data);
553 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Merge(this, &list1, &list2, compare, data);
554 }
555 }
556
557 extern int strcmp(const char * , const char * );
558
559 void * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(struct __ecereNameSpace__ecere__sys__OldList * this, char * name, unsigned int warn)
560 {
561 void * result = (((void *)0));
562
563 if(name)
564 {
565 void * item;
566 struct __ecereNameSpace__ecere__sys__NamedItem * link;
567 int compare = 1;
568
569 for(item = this->first; item; item = link->next)
570 {
571 link = (struct __ecereNameSpace__ecere__sys__NamedItem *)(((unsigned char *)item) + this->offset);
572 if(link->name && (compare = strcmp(link->name, name)) >= 0)
573 break;
574 }
575 if(!compare)
576 result = item;
577 else if(warn)
578 ;
579 }
580 return result;
581 }
582
583 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_PlaceName(struct __ecereNameSpace__ecere__sys__OldList * this, char * name, void ** place)
584 {
585 unsigned int result = 0x1;
586 void * item;
587 struct __ecereNameSpace__ecere__sys__NamedItem * link;
588 int compare = 1;
589
590 for(item = this->first; item; item = link->next)
591 {
592 link = (struct __ecereNameSpace__ecere__sys__NamedItem *)((unsigned char *)item + this->offset);
593 if(link->name && (compare = strcmp(link->name, name)) >= 0)
594 break;
595 }
596 if(!item)
597 *place = this->last;
598 else
599 *place = link->prev;
600 if(compare)
601 result = 0x1;
602 else
603 ;
604 return result;
605 }
606
607 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(struct __ecereNameSpace__ecere__sys__OldList * this, void * item)
608 {
609 unsigned int result = 0x0;
610 void * place;
611 struct __ecereNameSpace__ecere__sys__NamedItem * link = ((struct __ecereNameSpace__ecere__sys__NamedItem *)((unsigned char *)item + this->offset));
612
613 if(__ecereMethod___ecereNameSpace__ecere__sys__OldList_PlaceName(this, link->name, &place))
614 {
615 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(this, place, item);
616 result = 0x1;
617 }
618 return result;
619 }
620
621 struct __ecereNameSpace__ecere__sys__OldLink * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(struct __ecereNameSpace__ecere__sys__OldList * this, void * data)
622 {
623 void * item;
624 struct __ecereNameSpace__ecere__sys__OldLink * link;
625
626 for(item = this->first; item; item = link->next)
627 {
628 link = (struct __ecereNameSpace__ecere__sys__OldLink *)((unsigned char *)item + this->offset);
629 if(link->data == data)
630 break;
631 }
632 return item;
633 }
634
635 void * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindNamedLink(struct __ecereNameSpace__ecere__sys__OldList * this, char * name, unsigned int warn)
636 {
637 if(name)
638 {
639 void * item = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(this, name, warn);
640
641 return item ? ((struct __ecereNameSpace__ecere__sys__NamedLink *)((unsigned char *)item + this->offset))->data : (((void *)0));
642 }
643 return (((void *)0));
644 }
645
646 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Copy(struct __ecereNameSpace__ecere__sys__OldList * this, struct __ecereNameSpace__ecere__sys__OldList * src, int size, void (* copy)(void * dest, void * src))
647 {
648 struct __ecereNameSpace__ecere__sys__Item * item;
649
650 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(this);
651 for(item = src->first; item; item = item->next)
652 {
653 struct __ecereNameSpace__ecere__sys__Item * newItem = (struct __ecereNameSpace__ecere__sys__Item *)__ecereNameSpace__ecere__com__eSystem_New0(sizeof(unsigned char) * (size));
654
655 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(this, newItem);
656 __ecereMethod___ecereNameSpace__ecere__sys__Item_Copy(newItem, item, size);
657 if(copy)
658 copy(newItem, item);
659 }
660 }
661
662 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);
663
664 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
665
666 struct __ecereNameSpace__ecere__com__NameSpace
667 {
668 char *  name;
669 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
670 struct __ecereNameSpace__ecere__com__NameSpace *  left;
671 struct __ecereNameSpace__ecere__com__NameSpace *  right;
672 int depth;
673 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
674 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
675 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
676 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
677 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
678 };
679
680 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
681
682 struct __ecereNameSpace__ecere__com__Module
683 {
684 struct __ecereNameSpace__ecere__com__Instance * application;
685 struct __ecereNameSpace__ecere__sys__OldList classes;
686 struct __ecereNameSpace__ecere__sys__OldList defines;
687 struct __ecereNameSpace__ecere__sys__OldList functions;
688 struct __ecereNameSpace__ecere__sys__OldList modules;
689 struct __ecereNameSpace__ecere__com__Instance * prev;
690 struct __ecereNameSpace__ecere__com__Instance * next;
691 char *  name;
692 void *  library;
693 void *  Unload;
694 int importType;
695 int origImportType;
696 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
697 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
698 };
699
700 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
701
702 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);
703
704 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);
705
706 void __ecereRegisterModule_OldList(struct __ecereNameSpace__ecere__com__Instance * module)
707 {
708 struct __ecereNameSpace__ecere__com__Class * class;
709
710 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::Item", 0, sizeof(struct __ecereNameSpace__ecere__sys__Item), 0, 0, 0, module, 4, 1);
711 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
712 __ecereClass___ecereNameSpace__ecere__sys__Item = class;
713 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Copy", "void Copy(ecere::sys::Item src, int size)", __ecereMethod___ecereNameSpace__ecere__sys__Item_Copy, 1);
714 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::Item", 4, 4, 1);
715 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::Item", 4, 4, 1);
716 if(class)
717 class->fixed = (unsigned int)1;
718 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::NamedItem", 0, sizeof(struct __ecereNameSpace__ecere__sys__NamedItem), 0, 0, 0, module, 4, 1);
719 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
720 __ecereClass___ecereNameSpace__ecere__sys__NamedItem = class;
721 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::NamedItem", 4, 4, 1);
722 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::NamedItem", 4, 4, 1);
723 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
724 if(class)
725 class->fixed = (unsigned int)1;
726 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::OldLink", 0, sizeof(struct __ecereNameSpace__ecere__sys__OldLink), 0, 0, 0, module, 4, 1);
727 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
728 __ecereClass___ecereNameSpace__ecere__sys__OldLink = class;
729 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", "void Free()", __ecereMethod___ecereNameSpace__ecere__sys__OldLink_Free, 1);
730 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::OldLink", 4, 4, 1);
731 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::OldLink", 4, 4, 1);
732 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
733 if(class)
734 class->fixed = (unsigned int)1;
735 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::NamedLink", 0, sizeof(struct __ecereNameSpace__ecere__sys__NamedLink), 0, 0, 0, module, 4, 1);
736 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
737 __ecereClass___ecereNameSpace__ecere__sys__NamedLink = class;
738 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::NamedLink", 4, 4, 1);
739 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::NamedLink", 4, 4, 1);
740 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
741 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
742 if(class)
743 class->fixed = (unsigned int)1;
744 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::sys::OldList", 0, sizeof(struct __ecereNameSpace__ecere__sys__OldList), 0, 0, 0, module, 4, 1);
745 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
746 __ecereClass___ecereNameSpace__ecere__sys__OldList = class;
747 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", "void Add(void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add, 1);
748 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "AddName", "bool AddName(void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName, 1);
749 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Clear", "void Clear(void)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear, 1);
750 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Copy", "void Copy(ecere::sys::OldList src, int size, void (* copy)(void * dest, void * src))", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Copy, 1);
751 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Delete", "void Delete(void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete, 1);
752 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindLink", "ecere::sys::OldLink FindLink(void * data)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink, 1);
753 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindName", "void * FindName(char * name, bool warn)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName, 1);
754 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindNamedLink", "void * FindNamedLink(char * name, bool warn)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindNamedLink, 1);
755 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", "void Free(void (* freeFn)(void *))", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free, 1);
756 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Insert", "bool Insert(void * prevItem, void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert, 1);
757 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Move", "void Move(void * item, void * prevItem)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Move, 1);
758 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "PlaceName", "bool PlaceName(char * name, void ** place)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_PlaceName, 1);
759 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove(void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove, 1);
760 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "RemoveAll", "void RemoveAll(void (* freeFn)(void *))", __ecereMethod___ecereNameSpace__ecere__sys__OldList_RemoveAll, 1);
761 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Sort", "void Sort(int (* compare)(void *, void *, void *), void * data)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Sort, 1);
762 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Swap", "void Swap(void * item1, void * item2)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Swap, 1);
763 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "first", "void *", 4, 4, 1);
764 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "last", "void *", 4, 4, 1);
765 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
766 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "uint", 4, 4, 1);
767 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "circ", "bool", 4, 4, 1);
768 }
769
770 void __ecereUnregisterModule_OldList(struct __ecereNameSpace__ecere__com__Instance * module)
771 {
772
773 }
774