ecere/gui/Window: Prevent uninitialized values if base Window methods not overridden...
[sdk] / compiler / bootstrap / ecere / bootstrap / Container.c
1 /* Code generated from eC source file: Container.ec */
2 #if defined(_WIN32)
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
6 #else
7 #define __runtimePlatform 2
8 #endif
9 #if defined(__GNUC__)
10 typedef long long int64;
11 typedef unsigned long long uint64;
12 #ifndef _WIN32
13 #define __declspec(x)
14 #endif
15 #elif defined(__TINYC__)
16 #include <stdarg.h>
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
20 #ifdef _WIN32
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
24 #else
25 #define __declspec(x)
26 #endif
27 typedef long long int64;
28 typedef unsigned long long uint64;
29 #else
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
32 #endif
33 #ifdef __BIG_ENDIAN__
34 #define __ENDIAN_PAD(x) (8 - (x))
35 #else
36 #define __ENDIAN_PAD(x) 0
37 #endif
38 #if defined(_WIN32)
39 #   if defined(__GNUC__) || defined(__TINYC__)
40 #      define ecere_stdcall __attribute__((__stdcall__))
41 #      define ecere_gcc_struct __attribute__((gcc_struct))
42 #   else
43 #      define ecere_stdcall __stdcall
44 #      define ecere_gcc_struct
45 #   endif
46 #else
47 #   define ecere_stdcall
48 #   define ecere_gcc_struct
49 #endif
50 #include <stdint.h>
51 #include <sys/types.h>
52 extern int __ecereVMethodID_class_OnCompare;
53
54 extern int __ecereVMethodID_class_OnGetString;
55
56 extern int __ecereVMethodID_class_OnSerialize;
57
58 extern int __ecereVMethodID_class_OnUnserialize;
59
60 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Class_char__PTR_;
61
62 struct __ecereNameSpace__ecere__sys__BTNode;
63
64 struct __ecereNameSpace__ecere__sys__OldList
65 {
66 void *  first;
67 void *  last;
68 int count;
69 unsigned int offset;
70 unsigned int circ;
71 } ecere_gcc_struct;
72
73 struct __ecereNameSpace__ecere__com__DataValue
74 {
75 union
76 {
77 char c;
78 unsigned char uc;
79 short s;
80 unsigned short us;
81 int i;
82 unsigned int ui;
83 void *  p;
84 float f;
85 double d;
86 long long i64;
87 uint64 ui64;
88 } ecere_gcc_struct __anon1;
89 } ecere_gcc_struct;
90
91 struct __ecereNameSpace__ecere__com__IteratorPointer;
92
93 struct __ecereNameSpace__ecere__com__SerialBuffer
94 {
95 unsigned char *  _buffer;
96 unsigned int count;
97 unsigned int _size;
98 unsigned int pos;
99 } ecere_gcc_struct;
100
101 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
102
103 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
104
105 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
106
107 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
108
109 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void *  memory);
110
111 extern char *  strcat(char * , const char * );
112
113 extern void *  memset(void *  area, int value, size_t count);
114
115 extern unsigned int __ecereNameSpace__ecere__com__log2i(unsigned int number);
116
117 struct __ecereNameSpace__ecere__com__ClassTemplateParameter;
118
119 int __ecereVMethodID_class_OnCompare;
120
121 int __ecereVMethodID_class_OnCopy;
122
123 int __ecereVMethodID_class_OnGetString;
124
125 int __ecereVMethodID_class_OnFree;
126
127 struct __ecereNameSpace__ecere__com__Property;
128
129 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void *  instance, struct __ecereNameSpace__ecere__com__Property * _property, void *  object, void (*  callback)(void * , void * ));
130
131 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Iterator_data, * __ecerePropM___ecereNameSpace__ecere__com__Iterator_data;
132
133 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Container_copySrc, * __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc;
134
135 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Container_firstIterator, * __ecerePropM___ecereNameSpace__ecere__com__Container_firstIterator;
136
137 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Container_lastIterator, * __ecerePropM___ecereNameSpace__ecere__com__Container_lastIterator;
138
139 struct __ecereNameSpace__ecere__com__Class;
140
141 struct __ecereNameSpace__ecere__com__Instance
142 {
143 void * *  _vTbl;
144 struct __ecereNameSpace__ecere__com__Class * _class;
145 int _refCount;
146 } ecere_gcc_struct;
147
148 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
149
150 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, long long value);
151
152 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
153
154 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_AddProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, const char *  dataType, void *  setStmt, void *  getStmt, int declMode);
155
156 extern void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base);
157
158 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst;
159
160 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetLast;
161
162 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetPrev;
163
164 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext;
165
166 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData;
167
168 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_SetData;
169
170 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetAtPosition;
171
172 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Insert;
173
174 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Add;
175
176 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove;
177
178 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Move;
179
180 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll;
181
182 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Copy;
183
184 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Find;
185
186 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_FreeIterator;
187
188 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount;
189
190 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Free;
191
192 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Delete;
193
194 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Sort;
195
196 struct __ecereNameSpace__ecere__com__Property
197 {
198 struct __ecereNameSpace__ecere__com__Property * prev;
199 struct __ecereNameSpace__ecere__com__Property * next;
200 const char *  name;
201 unsigned int isProperty;
202 int memberAccess;
203 int id;
204 struct __ecereNameSpace__ecere__com__Class * _class;
205 const char *  dataTypeString;
206 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
207 struct __ecereNameSpace__ecere__com__Instance * dataType;
208 void (*  Set)(void * , int);
209 int (*  Get)(void * );
210 unsigned int (*  IsSet)(void * );
211 void *  data;
212 void *  symbol;
213 int vid;
214 unsigned int conversion;
215 unsigned int watcherOffset;
216 const char *  category;
217 unsigned int compiled;
218 unsigned int selfWatchable;
219 unsigned int isWatchable;
220 } ecere_gcc_struct;
221
222 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
223
224 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char *  name, void *  function);
225
226 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
227
228 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
229
230 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
231
232 struct __ecereNameSpace__ecere__com__Iterator
233 {
234 struct __ecereNameSpace__ecere__com__Instance * container;
235 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
236 } ecere_gcc_struct;
237
238 void __ecereProp___ecereNameSpace__ecere__com__Container_Set_copySrc(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value);
239
240 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__Container_GetFirst(struct __ecereNameSpace__ecere__com__Instance * this)
241 {
242 return (((void *)0));
243 }
244
245 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__Container_GetLast(struct __ecereNameSpace__ecere__com__Instance * this)
246 {
247 return (((void *)0));
248 }
249
250 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__Container_GetPrev(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer)
251 {
252 return (((void *)0));
253 }
254
255 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__Container_GetNext(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer)
256 {
257 return (((void *)0));
258 }
259
260 uint64 __ecereMethod___ecereNameSpace__ecere__com__Container_GetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer)
261 {
262 return (uint64)0;
263 }
264
265 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__Container_GetAtPosition(struct __ecereNameSpace__ecere__com__Instance * this, const uint64 pos, unsigned int create, unsigned int * justAdded)
266 {
267 return (((void *)0));
268 }
269
270 int __ecereVMethodID_class_OnSerialize;
271
272 int __ecereVMethodID_class_OnUnserialize;
273
274 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
275
276 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Put(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, const void * data);
277
278 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Get(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * *  data);
279
280 uint64 __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(struct __ecereNameSpace__ecere__com__Iterator * this);
281
282 void __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value);
283
284 struct __ecereNameSpace__ecere__sys__BinaryTree;
285
286 struct __ecereNameSpace__ecere__sys__BinaryTree
287 {
288 struct __ecereNameSpace__ecere__sys__BTNode * root;
289 int count;
290 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
291 void (*  FreeKey)(void *  key);
292 } ecere_gcc_struct;
293
294 struct __ecereNameSpace__ecere__com__DataMember;
295
296 struct __ecereNameSpace__ecere__com__DataMember
297 {
298 struct __ecereNameSpace__ecere__com__DataMember * prev;
299 struct __ecereNameSpace__ecere__com__DataMember * next;
300 const char *  name;
301 unsigned int isProperty;
302 int memberAccess;
303 int id;
304 struct __ecereNameSpace__ecere__com__Class * _class;
305 const char *  dataTypeString;
306 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
307 struct __ecereNameSpace__ecere__com__Instance * dataType;
308 int type;
309 int offset;
310 int memberID;
311 struct __ecereNameSpace__ecere__sys__OldList members;
312 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
313 int memberOffset;
314 short structAlignment;
315 short pointerAlignment;
316 } ecere_gcc_struct;
317
318 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, const char *  type, unsigned int size, unsigned int alignment, int declMode);
319
320 struct __ecereNameSpace__ecere__com__Method;
321
322 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
323 {
324 union
325 {
326 struct
327 {
328 const char *  dataTypeString;
329 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
330 } ecere_gcc_struct __anon1;
331 struct __ecereNameSpace__ecere__com__DataValue expression;
332 struct
333 {
334 const char *  memberString;
335 union
336 {
337 struct __ecereNameSpace__ecere__com__DataMember * member;
338 struct __ecereNameSpace__ecere__com__Property * prop;
339 struct __ecereNameSpace__ecere__com__Method * method;
340 } ecere_gcc_struct __anon1;
341 } ecere_gcc_struct __anon2;
342 } ecere_gcc_struct __anon1;
343 } ecere_gcc_struct;
344
345 struct __ecereNameSpace__ecere__com__Method
346 {
347 const char *  name;
348 struct __ecereNameSpace__ecere__com__Method * parent;
349 struct __ecereNameSpace__ecere__com__Method * left;
350 struct __ecereNameSpace__ecere__com__Method * right;
351 int depth;
352 int (*  function)();
353 int vid;
354 int type;
355 struct __ecereNameSpace__ecere__com__Class * _class;
356 void *  symbol;
357 const char *  dataTypeString;
358 struct __ecereNameSpace__ecere__com__Instance * dataType;
359 int memberAccess;
360 } ecere_gcc_struct;
361
362 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, const char *  type, void *  function, int declMode);
363
364 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, const char *  type, void *  function, int declMode);
365
366 extern struct __ecereNameSpace__ecere__com__ClassTemplateParameter * __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, int type, const void *  info, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * defaultArg);
367
368 struct __ecereNameSpace__ecere__com__Module;
369
370 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, const char *  name, const char *  baseName, int size, int sizeClass, unsigned int (*  Constructor)(void * ), void (*  Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
371
372 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
373
374 struct __ecereNameSpace__ecere__com__NameSpace;
375
376 struct __ecereNameSpace__ecere__com__NameSpace
377 {
378 const char *  name;
379 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
380 struct __ecereNameSpace__ecere__com__NameSpace *  left;
381 struct __ecereNameSpace__ecere__com__NameSpace *  right;
382 int depth;
383 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
384 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
385 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
386 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
387 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
388 } ecere_gcc_struct;
389
390 struct __ecereNameSpace__ecere__com__Class
391 {
392 struct __ecereNameSpace__ecere__com__Class * prev;
393 struct __ecereNameSpace__ecere__com__Class * next;
394 const char *  name;
395 int offset;
396 int structSize;
397 void * *  _vTbl;
398 int vTblSize;
399 unsigned int (*  Constructor)(void * );
400 void (*  Destructor)(void * );
401 int offsetClass;
402 int sizeClass;
403 struct __ecereNameSpace__ecere__com__Class * base;
404 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
405 struct __ecereNameSpace__ecere__sys__BinaryTree members;
406 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
407 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
408 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
409 struct __ecereNameSpace__ecere__sys__OldList derivatives;
410 int memberID;
411 int startMemberID;
412 int type;
413 struct __ecereNameSpace__ecere__com__Instance * module;
414 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
415 const char *  dataTypeString;
416 struct __ecereNameSpace__ecere__com__Instance * dataType;
417 int typeSize;
418 int defaultAlignment;
419 void (*  Initialize)();
420 int memberOffset;
421 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
422 const char *  designerClass;
423 unsigned int noExpansion;
424 const char *  defaultProperty;
425 unsigned int comRedefinition;
426 int count;
427 int isRemote;
428 unsigned int internalDecl;
429 void *  data;
430 unsigned int computeSize;
431 short structAlignment;
432 short pointerAlignment;
433 int destructionWatchOffset;
434 unsigned int fixed;
435 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
436 int inheritanceAccess;
437 const char *  fullName;
438 void *  symbol;
439 struct __ecereNameSpace__ecere__sys__OldList conversions;
440 struct __ecereNameSpace__ecere__sys__OldList templateParams;
441 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
442 struct __ecereNameSpace__ecere__com__Class * templateClass;
443 struct __ecereNameSpace__ecere__sys__OldList templatized;
444 int numParams;
445 unsigned int isInstanceClass;
446 unsigned int byValueSystemClass;
447 } ecere_gcc_struct;
448
449 struct __ecereNameSpace__ecere__com__Application
450 {
451 int argc;
452 const char * *  argv;
453 int exitCode;
454 unsigned int isGUIApp;
455 struct __ecereNameSpace__ecere__sys__OldList allModules;
456 char *  parsedCommand;
457 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
458 } ecere_gcc_struct;
459
460 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Iterator;
461
462 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Container;
463
464 void __ecereMethod___ecereNameSpace__ecere__com__Container_OnFree(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance * this)
465 {
466 if((struct __ecereNameSpace__ecere__com__Instance *)this)
467 {
468 (__extension__ ({
469 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
470
471 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
472 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
473
474 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
475 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Free]);
476 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (void)1;
477 }));
478 (__ecereNameSpace__ecere__com__eInstance_DecRef(this), this = 0);
479 }
480 }
481
482 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_int;
483
484 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
485
486 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uint;
487
488 const char *  __ecereProp___ecereNameSpace__ecere__com__Class_Get_char__PTR_(struct __ecereNameSpace__ecere__com__Class * this);
489
490 struct __ecereNameSpace__ecere__com__Class * __ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_(const char *  value);
491
492 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
493
494 struct __ecereNameSpace__ecere__com__Module
495 {
496 struct __ecereNameSpace__ecere__com__Instance * application;
497 struct __ecereNameSpace__ecere__sys__OldList classes;
498 struct __ecereNameSpace__ecere__sys__OldList defines;
499 struct __ecereNameSpace__ecere__sys__OldList functions;
500 struct __ecereNameSpace__ecere__sys__OldList modules;
501 struct __ecereNameSpace__ecere__com__Instance * prev;
502 struct __ecereNameSpace__ecere__com__Instance * next;
503 const char *  name;
504 void *  library;
505 void *  Unload;
506 int importType;
507 int origImportType;
508 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
509 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
510 } ecere_gcc_struct;
511
512 uint64 __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(struct __ecereNameSpace__ecere__com__Iterator * this)
513 {
514 return (__extension__ ({
515 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
516
517 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
518 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
519
520 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
521 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
522 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer) : (uint64)1;
523 }));
524 }
525
526 void __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value)
527 {
528 (__extension__ ({
529 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer, uint64 data);
530
531 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer, uint64 data))__extension__ ({
532 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
533
534 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
535 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_SetData]);
536 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer, value) : (unsigned int)1;
537 }));
538 }
539
540 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Prev(struct __ecereNameSpace__ecere__com__Iterator * this)
541 {
542 if(this->pointer && this->container)
543 this->pointer = (__extension__ ({
544 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
545
546 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
547 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
548
549 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
550 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetPrev]);
551 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
552 }));
553 else if(this->container)
554 this->pointer = (__extension__ ({
555 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
556
557 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
558 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
559
560 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
561 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetLast]);
562 __internal_VirtualMethod ? __internal_VirtualMethod(this->container) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
563 }));
564 return this->pointer != (((void *)0));
565 }
566
567 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(struct __ecereNameSpace__ecere__com__Iterator * this)
568 {
569 if(this->pointer && this->container)
570 this->pointer = (__extension__ ({
571 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
572
573 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
574 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
575
576 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
577 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
578 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
579 }));
580 else if(this->container)
581 this->pointer = (__extension__ ({
582 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
583
584 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
585 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
586
587 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
588 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
589 __internal_VirtualMethod ? __internal_VirtualMethod(this->container) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
590 }));
591 return this->pointer != (((void *)0));
592 }
593
594 uint64 __ecereMethod___ecereNameSpace__ecere__com__Iterator_GetData(struct __ecereNameSpace__ecere__com__Iterator * this)
595 {
596 return (__extension__ ({
597 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
598
599 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
600 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
601
602 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
603 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
604 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer) : (uint64)1;
605 }));
606 }
607
608 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_SetData(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value)
609 {
610 return (__extension__ ({
611 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer, uint64 data);
612
613 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer, uint64 data))__extension__ ({
614 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
615
616 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
617 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_SetData]);
618 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer, value) : (unsigned int)1;
619 }));
620 }
621
622 void __ecereMethod___ecereNameSpace__ecere__com__Iterator_Remove(struct __ecereNameSpace__ecere__com__Iterator * this)
623 {
624 if(this->container)
625 (__extension__ ({
626 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it);
627
628 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
629 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
630
631 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
632 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove]);
633 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer) : (void)1;
634 }));
635 this->pointer = (((void *)0));
636 }
637
638 void __ecereMethod___ecereNameSpace__ecere__com__Iterator_Free(struct __ecereNameSpace__ecere__com__Iterator * this)
639 {
640 if(this->container)
641 (__extension__ ({
642 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it);
643
644 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
645 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
646
647 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
648 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_FreeIterator]);
649 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer) : (void)1;
650 }));
651 }
652
653 void __ecereDestructor___ecereNameSpace__ecere__com__Container(struct __ecereNameSpace__ecere__com__Instance * this)
654 {
655 {
656 (__extension__ ({
657 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
658
659 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
660 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
661
662 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
663 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll]);
664 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (void)1;
665 }));
666 }
667 }
668
669 void __ecereProp___ecereNameSpace__ecere__com__Container_Set_copySrc(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value)
670 {
671 if(value)
672 (__extension__ ({
673 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance * source);
674
675 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance * source))__extension__ ({
676 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
677
678 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
679 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Copy]);
680 __internal_VirtualMethod ? __internal_VirtualMethod(this, value) : (void)1;
681 }));
682 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__Container_copySrc), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc);
683 }
684
685 void __ecereProp___ecereNameSpace__ecere__com__Container_Get_firstIterator(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Iterator * value)
686 {
687 struct __ecereNameSpace__ecere__com__Iterator __simpleStruct0;
688
689 *value = (__simpleStruct0.container = (struct __ecereNameSpace__ecere__com__Instance *)this, __simpleStruct0.pointer = (__extension__ ({
690 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
691
692 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
693 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
694
695 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
696 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
697 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
698 })), __simpleStruct0);
699 }
700
701 void __ecereProp___ecereNameSpace__ecere__com__Container_Get_lastIterator(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Iterator * value)
702 {
703 struct __ecereNameSpace__ecere__com__Iterator __simpleStruct0;
704
705 *value = (__simpleStruct0.container = (struct __ecereNameSpace__ecere__com__Instance *)this, __simpleStruct0.pointer = (__extension__ ({
706 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
707
708 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
709 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
710
711 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
712 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetLast]);
713 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
714 })), __simpleStruct0);
715 }
716
717 void __ecereMethod___ecereNameSpace__ecere__com__Container_RemoveAll(struct __ecereNameSpace__ecere__com__Instance * this)
718 {
719 struct __ecereNameSpace__ecere__com__IteratorPointer * i, * next;
720
721 for(i = (__extension__ ({
722 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
723
724 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
725 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
726
727 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
728 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
729 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
730 })), next = i ? (__extension__ ({
731 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
732
733 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
734 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
735
736 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
737 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
738 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
739 })) : (((void *)0)); i; i = next, next = i ? (__extension__ ({
740 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
741
742 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
743 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
744
745 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
746 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
747 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
748 })) : (((void *)0)))
749 (__extension__ ({
750 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it);
751
752 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
753 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
754
755 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
756 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove]);
757 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (void)1;
758 }));
759 }
760
761 void __ecereMethod___ecereNameSpace__ecere__com__Container_Copy(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * source)
762 {
763 struct __ecereNameSpace__ecere__com__IteratorPointer * i;
764
765 (__extension__ ({
766 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
767
768 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
769 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
770
771 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
772 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll]);
773 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (void)1;
774 }));
775 for(i = (__extension__ ({
776 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
777
778 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
779 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = source;
780
781 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
782 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
783 __internal_VirtualMethod ? __internal_VirtualMethod(source) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
784 })); i; i = (__extension__ ({
785 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
786
787 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
788 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = source;
789
790 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
791 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
792 __internal_VirtualMethod ? __internal_VirtualMethod(source, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
793 })))
794 {
795 uint64 data = (__extension__ ({
796 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
797
798 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
799 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = source;
800
801 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
802 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
803 __internal_VirtualMethod ? __internal_VirtualMethod(source, i) : (uint64)1;
804 }));
805
806 (__extension__ ({
807 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
808
809 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
810 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
811
812 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
813 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
814 __internal_VirtualMethod ? __internal_VirtualMethod(this, data) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
815 }));
816 }
817 }
818
819 int __ecereMethod___ecereNameSpace__ecere__com__Container_OnCompare(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * b)
820 {
821 struct __ecereNameSpace__ecere__com__IteratorPointer * ia, * ib;
822 struct __ecereNameSpace__ecere__com__Class * Dclass = class->templateArgs[2].__anon1.__anon1.dataTypeClass;
823 unsigned int byRef = (Dclass->type == 1000 && !Dclass->byValueSystemClass) || Dclass->type == 2 || Dclass->type == 4 || Dclass->type == 3;
824 int (* onCompare)(void *, const void *, const void *) = (void *)Dclass->_vTbl[__ecereVMethodID_class_OnCompare];
825
826 if(this && !b)
827 return 1;
828 if(b && !this)
829 return -1;
830 if(!b && !this)
831 return 0;
832 if((__extension__ ({
833 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
834
835 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
836 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
837
838 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
839 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
840 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (int)1;
841 })) > (__extension__ ({
842 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
843
844 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
845 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = b;
846
847 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
848 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
849 __internal_VirtualMethod ? __internal_VirtualMethod(b) : (int)1;
850 })))
851 return 1;
852 if((__extension__ ({
853 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
854
855 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
856 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
857
858 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
859 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
860 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (int)1;
861 })) < (__extension__ ({
862 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
863
864 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
865 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = b;
866
867 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
868 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
869 __internal_VirtualMethod ? __internal_VirtualMethod(b) : (int)1;
870 })))
871 return -1;
872 ia = (__extension__ ({
873 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
874
875 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
876 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
877
878 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
879 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
880 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
881 }));
882 ib = (__extension__ ({
883 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
884
885 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
886 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = b;
887
888 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
889 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
890 __internal_VirtualMethod ? __internal_VirtualMethod(b) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
891 }));
892 while(ia && ib)
893 {
894 uint64 dataA = (__extension__ ({
895 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
896
897 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
898 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
899
900 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
901 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
902 __internal_VirtualMethod ? __internal_VirtualMethod(this, ia) : (uint64)1;
903 }));
904 uint64 dataB = (__extension__ ({
905 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
906
907 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
908 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = b;
909
910 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
911 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
912 __internal_VirtualMethod ? __internal_VirtualMethod(b, ib) : (uint64)1;
913 }));
914 int r = onCompare(Dclass, byRef ? ((char *)&dataA + __ENDIAN_PAD(class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)) : (const void *)(uintptr_t)dataA, byRef ? ((char *)&dataB + __ENDIAN_PAD(class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)) : (const void *)(uintptr_t)dataB);
915
916 if(r)
917 return r;
918 ia = (__extension__ ({
919 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
920
921 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
922 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
923
924 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
925 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
926 __internal_VirtualMethod ? __internal_VirtualMethod(this, ia) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
927 }));
928 ib = (__extension__ ({
929 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
930
931 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
932 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = b;
933
934 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
935 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
936 __internal_VirtualMethod ? __internal_VirtualMethod(b, ib) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
937 }));
938 }
939 if(ia)
940 return 1;
941 if(ib)
942 return -1;
943 return 0;
944 }
945
946 int __ecereMethod___ecereNameSpace__ecere__com__Container_GetCount(struct __ecereNameSpace__ecere__com__Instance * this)
947 {
948 int count = 0;
949 struct __ecereNameSpace__ecere__com__IteratorPointer * i;
950
951 for(i = (__extension__ ({
952 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
953
954 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
955 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
956
957 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
958 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
959 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
960 })); i; i = (__extension__ ({
961 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
962
963 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
964 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
965
966 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
967 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
968 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
969 })))
970 count++;
971 return count;
972 }
973
974 void __ecereMethod___ecereNameSpace__ecere__com__Container_Free(struct __ecereNameSpace__ecere__com__Instance * this)
975 {
976 struct __ecereNameSpace__ecere__com__IteratorPointer * i;
977
978 while((i = (__extension__ ({
979 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
980
981 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
982 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
983
984 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
985 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
986 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
987 }))))
988 (__extension__ ({
989 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * i);
990
991 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * i))__extension__ ({
992 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
993
994 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
995 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Delete]);
996 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (void)1;
997 }));
998 }
999
1000 const char * __ecereMethod___ecereNameSpace__ecere__com__Container_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance * this, char * tempString, void * fieldData, unsigned int * needClass)
1001 {
1002 if((struct __ecereNameSpace__ecere__com__Instance *)this)
1003 {
1004 char itemString[4096];
1005 unsigned int first = 1;
1006 struct __ecereNameSpace__ecere__com__IteratorPointer * i;
1007
1008 tempString[0] = '\0';
1009 for(i = (__extension__ ({
1010 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1011
1012 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1013 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1014
1015 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1016 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
1017 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1018 })); i; i = (__extension__ ({
1019 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1020
1021 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1022 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1023
1024 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1025 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
1026 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1027 })))
1028 {
1029 struct __ecereNameSpace__ecere__com__Class * Dclass = class->templateArgs[2].__anon1.__anon1.dataTypeClass;
1030 uint64 data = (__extension__ ({
1031 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1032
1033 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1034 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1035
1036 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1037 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
1038 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (uint64)1;
1039 }));
1040 const char * result;
1041
1042 itemString[0] = '\0';
1043 result = ((const char * (*)(void *, void *, char *, void *, unsigned int *))(void *)Dclass->_vTbl[__ecereVMethodID_class_OnGetString])(Dclass, ((Dclass->type == 1000 && !Dclass->byValueSystemClass) || Dclass->type == 2 || Dclass->type == 4 || Dclass->type == 3) ? ((char *)&data + __ENDIAN_PAD(class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)) : (void *)(uintptr_t)data, itemString, (((void *)0)), (((void *)0)));
1044 if(!first)
1045 strcat(tempString, ", ");
1046 strcat(tempString, result);
1047 first = 0;
1048 }
1049 }
1050 else
1051 tempString[0] = 0;
1052 return tempString;
1053 }
1054
1055 void __ecereMethod___ecereNameSpace__ecere__com__Container_TakeOut(struct __ecereNameSpace__ecere__com__Instance * this, const uint64 d)
1056 {
1057 struct __ecereNameSpace__ecere__com__IteratorPointer * i = (__extension__ ({
1058 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 value);
1059
1060 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 value))__extension__ ({
1061 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1062
1063 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1064 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Find]);
1065 __internal_VirtualMethod ? __internal_VirtualMethod(this, d) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1066 }));
1067
1068 if(i)
1069 (__extension__ ({
1070 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it);
1071
1072 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
1073 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1074
1075 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1076 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove]);
1077 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (void)1;
1078 }));
1079 }
1080
1081 static __attribute__((unused)) void UnusedFunction()
1082 {
1083 int a;
1084
1085 (__extension__ ({
1086 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Class * , const void * , const void * object);
1087
1088 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Class *, const void *, const void * object))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnCompare]);
1089 __internal_VirtualMethod ? __internal_VirtualMethod(__ecereClass_int, (void *)&a, (((void *)0))) : (int)1;
1090 }));
1091 (__extension__ ({
1092 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Class * , const void * , const void * newData);
1093
1094 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Class *, const void *, const void * newData))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnCopy]);
1095 __internal_VirtualMethod ? __internal_VirtualMethod(__ecereClass_int, (void *)&a, (((void *)0))) : (void)1;
1096 }));
1097 (__extension__ ({
1098 const char *  (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Class * , const void * , char *  tempString, void *  fieldData, unsigned int *  needClass);
1099
1100 __internal_VirtualMethod = ((const char *  (*)(struct __ecereNameSpace__ecere__com__Class *, const void *, char *  tempString, void *  fieldData, unsigned int *  needClass))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnGetString]);
1101 __internal_VirtualMethod ? __internal_VirtualMethod(__ecereClass_int, (void *)&a, (((void *)0)), (((void *)0)), (((void *)0))) : (const char * )1;
1102 }));
1103 (__extension__ ({
1104 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Class * , const void * , struct __ecereNameSpace__ecere__com__Instance * channel);
1105
1106 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Class *, const void *, struct __ecereNameSpace__ecere__com__Instance * channel))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnSerialize]);
1107 __internal_VirtualMethod ? __internal_VirtualMethod(__ecereClass_int, (void *)&a, (((void *)0))) : (void)1;
1108 }));
1109 (__extension__ ({
1110 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Class * , const void * , struct __ecereNameSpace__ecere__com__Instance * channel);
1111
1112 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Class *, const void *, struct __ecereNameSpace__ecere__com__Instance * channel))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnUnserialize]);
1113 __internal_VirtualMethod ? __internal_VirtualMethod(__ecereClass_int, (void *)&a, (((void *)0))) : (void)1;
1114 }));
1115 }
1116
1117 void __ecereMethod___ecereNameSpace__ecere__com__Container_OnCopy(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance ** this, struct __ecereNameSpace__ecere__com__Instance * source)
1118 {
1119 if((struct __ecereNameSpace__ecere__com__Instance *)source)
1120 {
1121 struct __ecereNameSpace__ecere__com__Instance * container = __ecereNameSpace__ecere__com__eInstance_New(((struct __ecereNameSpace__ecere__com__Instance *)(char *)source)->_class);
1122
1123 (__extension__ ({
1124 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance * source);
1125
1126 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance * source))__extension__ ({
1127 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = container;
1128
1129 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1130 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Copy]);
1131 __internal_VirtualMethod ? __internal_VirtualMethod(container, (struct __ecereNameSpace__ecere__com__Instance *)source) : (void)1;
1132 }));
1133 (*this) = container;
1134 }
1135 else
1136 {
1137 (*this) = (((void *)0));
1138 }
1139 }
1140
1141 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__Container_Find(struct __ecereNameSpace__ecere__com__Instance * this, const uint64 value)
1142 {
1143 struct __ecereNameSpace__ecere__com__IteratorPointer * i;
1144 struct __ecereNameSpace__ecere__com__Class * Dclass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass;
1145 unsigned int byRef = (Dclass->type == 1000 && !Dclass->byValueSystemClass) || Dclass->type == 2 || Dclass->type == 4 || Dclass->type == 3;
1146 int (* onCompare)(void *, const void *, const void *) = (void *)Dclass->_vTbl[__ecereVMethodID_class_OnCompare];
1147
1148 if(byRef)
1149 {
1150 for(i = (__extension__ ({
1151 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1152
1153 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1154 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1155
1156 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1157 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
1158 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1159 })); i; i = (__extension__ ({
1160 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1161
1162 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1163 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1164
1165 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1166 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
1167 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1168 })))
1169 {
1170 uint64 data = (__extension__ ({
1171 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1172
1173 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1174 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1175
1176 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1177 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
1178 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (uint64)1;
1179 }));
1180 int result = onCompare(Dclass, ((char *)&value + __ENDIAN_PAD(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)), ((char *)&data + __ENDIAN_PAD(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)));
1181
1182 if(!result)
1183 return i;
1184 }
1185 }
1186 else
1187 {
1188 for(i = (__extension__ ({
1189 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1190
1191 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1192 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1193
1194 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1195 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
1196 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1197 })); i; i = (__extension__ ({
1198 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1199
1200 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1201 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1202
1203 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1204 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
1205 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1206 })))
1207 {
1208 uint64 data = (__extension__ ({
1209 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1210
1211 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1212 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1213
1214 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1215 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
1216 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (uint64)1;
1217 }));
1218 int result = onCompare(Dclass, (const void *)(uintptr_t)value, (const void *)(uintptr_t)data);
1219
1220 if(!result)
1221 return i;
1222 }
1223 }
1224 return (((void *)0));
1225 }
1226
1227 void __ecereMethod___ecereNameSpace__ecere__com__Container_Delete(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * i)
1228 {
1229 uint64 data = (__extension__ ({
1230 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1231
1232 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1233 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1234
1235 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1236 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
1237 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (uint64)1;
1238 }));
1239
1240 (((void (* )(void *  _class, void *  data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance * )(char * )this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass, ((void * )((uintptr_t)(data)))), data = 0);
1241 (__extension__ ({
1242 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it);
1243
1244 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
1245 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1246
1247 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1248 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove]);
1249 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (void)1;
1250 }));
1251 }
1252
1253 void __ecereMethod___ecereNameSpace__ecere__com__Container_OnSerialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * channel)
1254 {
1255 unsigned int count = (struct __ecereNameSpace__ecere__com__Instance *)this ? (__extension__ ({
1256 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1257
1258 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1259 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1260
1261 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1262 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
1263 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (int)1;
1264 })) : 0;
1265 struct __ecereNameSpace__ecere__com__IteratorPointer * i;
1266 struct __ecereNameSpace__ecere__com__Class * Dclass = class->templateArgs[2].__anon1.__anon1.dataTypeClass;
1267 unsigned int isNormalClass = (Dclass->type == 0) && Dclass->structSize;
1268
1269 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Put(channel, __ecereClass_uint, (void *)&count);
1270 if((struct __ecereNameSpace__ecere__com__Instance *)this)
1271 for(i = (__extension__ ({
1272 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1273
1274 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1275 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1276
1277 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1278 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
1279 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1280 })); i; i = (__extension__ ({
1281 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1282
1283 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1284 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1285
1286 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1287 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
1288 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1289 })))
1290 {
1291 uint64 data = (__extension__ ({
1292 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1293
1294 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1295 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1296
1297 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1298 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
1299 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (uint64)1;
1300 }));
1301 struct __ecereNameSpace__ecere__com__Class * Eclass = isNormalClass ? ((struct __ecereNameSpace__ecere__com__Instance *)(char *)((struct __ecereNameSpace__ecere__com__Instance *)((uintptr_t)((uint64)(data)))))->_class : Dclass;
1302
1303 ((void (*)(void *, void *, void *))(void *)Eclass->_vTbl[__ecereVMethodID_class_OnSerialize])(Eclass, ((Dclass->type == 1000 && !Dclass->byValueSystemClass) || Dclass->type == 2 || Dclass->type == 4 || Dclass->type == 3) ? ((char *)&data + __ENDIAN_PAD(class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)) : (void *)(uintptr_t)data, channel);
1304 }
1305 }
1306
1307 void __ecereMethod___ecereNameSpace__ecere__com__Container_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance ** this, struct __ecereNameSpace__ecere__com__Instance * channel)
1308 {
1309 struct __ecereNameSpace__ecere__com__Instance * container = __ecereNameSpace__ecere__com__eInstance_New(__ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_(class->fullName));
1310 unsigned int count, c;
1311 struct __ecereNameSpace__ecere__com__Class * Dclass = class->templateArgs[2].__anon1.__anon1.dataTypeClass;
1312 uint64 data;
1313 unsigned int isStruct = Dclass->type == 1;
1314
1315 container->_refCount++;
1316 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Get(channel, __ecereClass_uint, (void *)&count);
1317 if(isStruct)
1318 data = (uint64)(uintptr_t)(__ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (Dclass->structSize)));
1319 for(c = 0; c < count; c++)
1320 {
1321 if(isStruct)
1322 memset((char *)(uintptr_t)data, 0, Dclass->structSize);
1323 else
1324 data = (uint64)0;
1325 ((void (*)(void *, void *, void *))(void *)Dclass->_vTbl[__ecereVMethodID_class_OnUnserialize])(Dclass, isStruct ? (void *)(uintptr_t)data : ((char *)&data + __ENDIAN_PAD(class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)), channel);
1326 (__extension__ ({
1327 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
1328
1329 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
1330 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = container;
1331
1332 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1333 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
1334 __internal_VirtualMethod ? __internal_VirtualMethod(container, data) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1335 }));
1336 }
1337 if(isStruct)
1338 (__ecereNameSpace__ecere__com__eSystem_Delete((void *)(uintptr_t)data), data = 0);
1339 (*this) = container;
1340 }
1341
1342 void __ecereUnregisterModule_Container(struct __ecereNameSpace__ecere__com__Instance * module)
1343 {
1344
1345 __ecerePropM___ecereNameSpace__ecere__com__Iterator_data = (void *)0;
1346 __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc = (void *)0;
1347 __ecerePropM___ecereNameSpace__ecere__com__Container_firstIterator = (void *)0;
1348 __ecerePropM___ecereNameSpace__ecere__com__Container_lastIterator = (void *)0;
1349 }
1350
1351 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Find(struct __ecereNameSpace__ecere__com__Iterator * this, const uint64 value)
1352 {
1353 if(this->container)
1354 {
1355 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Free(this);
1356 this->pointer = (__extension__ ({
1357 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 value);
1358
1359 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 value))__extension__ ({
1360 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
1361
1362 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1363 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Find]);
1364 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, value) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1365 }));
1366 }
1367 return this->pointer != (((void *)0));
1368 }
1369
1370 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(struct __ecereNameSpace__ecere__com__Iterator * this, const uint64 index, unsigned int create)
1371 {
1372 if(this->container)
1373 {
1374 unsigned int justAdded = 0;
1375
1376 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Free(this);
1377 this->pointer = (__extension__ ({
1378 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 pos, unsigned int create, unsigned int *  justAdded);
1379
1380 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 pos, unsigned int create, unsigned int *  justAdded))__extension__ ({
1381 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
1382
1383 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1384 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetAtPosition]);
1385 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, index, create, &justAdded) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1386 }));
1387 return !justAdded && this->pointer != (((void *)0));
1388 }
1389 return 0;
1390 }
1391
1392 static void __ecereMethod___ecereNameSpace__ecere__com__Container__Sort(struct __ecereNameSpace__ecere__com__Instance *  this, unsigned int ascending, struct __ecereNameSpace__ecere__com__Instance * *  lists);
1393
1394 static void __ecereMethod___ecereNameSpace__ecere__com__Container__Sort(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int ascending, struct __ecereNameSpace__ecere__com__Instance ** lists)
1395 {
1396 int count = (__extension__ ({
1397 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1398
1399 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1400 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1401
1402 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1403 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
1404 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (int)1;
1405 }));
1406
1407 if(count >= 2 && ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[1].__anon1.__anon1.dataTypeClass == __ecereClass_int)
1408 {
1409 struct __ecereNameSpace__ecere__com__Iterator __simpleStruct1 =
1410 {
1411 0, 0
1412 };
1413 struct __ecereNameSpace__ecere__com__Iterator __simpleStruct0 =
1414 {
1415 0, 0
1416 };
1417 struct __ecereNameSpace__ecere__com__Iterator a =
1418 {
1419 this, 0
1420 };
1421 struct __ecereNameSpace__ecere__com__Iterator b =
1422 {
1423 this, 0
1424 };
1425 struct __ecereNameSpace__ecere__com__Iterator mid =
1426 {
1427 this, 0
1428 };
1429 struct __ecereNameSpace__ecere__com__Class * Dclass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass;
1430 unsigned int byRef = (Dclass->type == 1000 && !Dclass->byValueSystemClass) || Dclass->type == 2 || Dclass->type == 4 || Dclass->type == 3;
1431 int (* onCompare)(void *, const void *, const void *) = (void *)Dclass->_vTbl[__ecereVMethodID_class_OnCompare];
1432 struct __ecereNameSpace__ecere__com__Instance * listA = lists[0];
1433 struct __ecereNameSpace__ecere__com__Instance * listB = lists[1];
1434
1435 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&mid, (uint64)(count / 2 - 1), 0);
1436 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&a))
1437 {
1438 (__extension__ ({
1439 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
1440
1441 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
1442 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = listA;
1443
1444 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1445 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
1446 __internal_VirtualMethod ? __internal_VirtualMethod(listA, __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&a)) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1447 }));
1448 if(a.pointer == mid.pointer)
1449 break;
1450 }
1451 b.pointer = mid.pointer;
1452 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&b))
1453 (__extension__ ({
1454 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
1455
1456 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
1457 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = listB;
1458
1459 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1460 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
1461 __internal_VirtualMethod ? __internal_VirtualMethod(listB, __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&b)) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1462 }));
1463 (__extension__ ({
1464 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1465
1466 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1467 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1468
1469 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1470 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll]);
1471 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (void)1;
1472 }));
1473 __ecereMethod___ecereNameSpace__ecere__com__Container__Sort(listA, ascending, lists + 2);
1474 __ecereMethod___ecereNameSpace__ecere__com__Container__Sort(listB, ascending, lists + 2);
1475 a = (__simpleStruct0.container = listA, __simpleStruct0);
1476 b = (__simpleStruct1.container = listB, __simpleStruct1);
1477 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&a);
1478 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&b);
1479 while(a.pointer || b.pointer)
1480 {
1481 int r;
1482
1483 if(a.pointer && b.pointer)
1484 {
1485 uint64 dataA = __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&a), dataB = __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&b);
1486
1487 r = onCompare(Dclass, byRef ? ((char *)&dataA + __ENDIAN_PAD(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)) : (const void *)(uintptr_t)dataA, byRef ? ((char *)&dataB + __ENDIAN_PAD(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)) : (const void *)(uintptr_t)dataB);
1488 }
1489 else if(a.pointer)
1490 r = -1;
1491 else
1492 r = 1;
1493 if(!ascending)
1494 r *= -1;
1495 if(r < 0)
1496 {
1497 (__extension__ ({
1498 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
1499
1500 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
1501 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1502
1503 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1504 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
1505 __internal_VirtualMethod ? __internal_VirtualMethod(this, __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&a)) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1506 }));
1507 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&a);
1508 }
1509 else
1510 {
1511 (__extension__ ({
1512 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
1513
1514 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
1515 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1516
1517 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1518 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
1519 __internal_VirtualMethod ? __internal_VirtualMethod(this, __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&b)) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1520 }));
1521 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&b);
1522 }
1523 }
1524 (__extension__ ({
1525 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1526
1527 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1528 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = listA;
1529
1530 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1531 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll]);
1532 __internal_VirtualMethod ? __internal_VirtualMethod(listA) : (void)1;
1533 }));
1534 (__extension__ ({
1535 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1536
1537 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1538 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = listB;
1539
1540 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1541 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll]);
1542 __internal_VirtualMethod ? __internal_VirtualMethod(listB) : (void)1;
1543 }));
1544 }
1545 }
1546
1547 void __ecereMethod___ecereNameSpace__ecere__com__Container_Sort(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int ascending)
1548 {
1549 int i, numLists = __ecereNameSpace__ecere__com__log2i((__extension__ ({
1550 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1551
1552 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1553 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1554
1555 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1556 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
1557 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (int)1;
1558 }))) * 2;
1559 struct __ecereNameSpace__ecere__com__Instance ** lists = __ecereNameSpace__ecere__com__eSystem_New(sizeof(struct __ecereNameSpace__ecere__com__Instance *) * (numLists));
1560
1561 for(i = 0; i < numLists; i++)
1562 lists[i] = __ecereNameSpace__ecere__com__eInstance_New(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class);
1563 __ecereMethod___ecereNameSpace__ecere__com__Container__Sort(this, ascending, lists);
1564 for(i = 0; i < numLists; i++)
1565 (__ecereNameSpace__ecere__com__eInstance_DecRef(lists[i]), lists[i] = 0);
1566 (__ecereNameSpace__ecere__com__eSystem_Delete(lists), lists = 0);
1567 }
1568
1569 void __ecereRegisterModule_Container(struct __ecereNameSpace__ecere__com__Instance * module)
1570 {
1571 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct2 =
1572 {
1573
1574 .__anon1 = {
1575
1576 .__anon1 = {
1577 .dataTypeString = "T"
1578 }
1579 }
1580 };
1581 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct1 =
1582 {
1583
1584 .__anon1 = {
1585
1586 .__anon1 = {
1587 .dataTypeString = "int"
1588 }
1589 }
1590 };
1591 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct0 =
1592 {
1593
1594 .__anon1 = {
1595
1596 .__anon1 = {
1597 .dataTypeString = "int"
1598 }
1599 }
1600 };
1601 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
1602
1603 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::Iterator", 0, sizeof(struct __ecereNameSpace__ecere__com__Iterator), 0, (void *)0, (void *)0, module, 4, 1);
1604 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application && class)
1605 __ecereClass___ecereNameSpace__ecere__com__Iterator = class;
1606 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", "bool Find(const T value)", __ecereMethod___ecereNameSpace__ecere__com__Iterator_Find, 1);
1607 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", "void Free()", __ecereMethod___ecereNameSpace__ecere__com__Iterator_Free, 1);
1608 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetData", "T GetData()", __ecereMethod___ecereNameSpace__ecere__com__Iterator_GetData, 1);
1609 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Index", "bool Index(const IT index, bool create)", __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index, 1);
1610 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Next", "bool Next()", __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next, 1);
1611 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Prev", "bool Prev()", __ecereMethod___ecereNameSpace__ecere__com__Iterator_Prev, 1);
1612 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove()", __ecereMethod___ecereNameSpace__ecere__com__Iterator_Remove, 1);
1613 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "SetData", "bool SetData(T value)", __ecereMethod___ecereNameSpace__ecere__com__Iterator_SetData, 1);
1614 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "container", "ecere::com::Container<T, IT>", sizeof(void *), 0xF000F000, 1);
1615 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pointer", "ecere::com::IteratorPointer", sizeof(void *), 0xF000F000, 1);
1616 __ecerePropM___ecereNameSpace__ecere__com__Iterator_data = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "data", "T", __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data, __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data, 1);
1617 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1618 __ecereProp___ecereNameSpace__ecere__com__Iterator_data = __ecerePropM___ecereNameSpace__ecere__com__Iterator_data, __ecerePropM___ecereNameSpace__ecere__com__Iterator_data = (void *)0;
1619 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "T", 0, 0, (((void *)0)));
1620 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "IT", 0, 0, &__simpleStruct0);
1621 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
1622 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Container", 0, 0, 0, (void *)0, (void *)__ecereDestructor___ecereNameSpace__ecere__com__Container, module, 4, 1);
1623 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application && class)
1624 __ecereClass___ecereNameSpace__ecere__com__Container = class;
1625 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnCompare", 0, __ecereMethod___ecereNameSpace__ecere__com__Container_OnCompare, 1);
1626 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnCopy", 0, __ecereMethod___ecereNameSpace__ecere__com__Container_OnCopy, 1);
1627 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod___ecereNameSpace__ecere__com__Container_OnFree, 1);
1628 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Container_OnGetString, 1);
1629 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Container_OnSerialize, 1);
1630 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Container_OnUnserialize, 1);
1631 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetFirst", "ecere::com::IteratorPointer GetFirst()", __ecereMethod___ecereNameSpace__ecere__com__Container_GetFirst, 1);
1632 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetLast", "ecere::com::IteratorPointer GetLast()", __ecereMethod___ecereNameSpace__ecere__com__Container_GetLast, 1);
1633 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetPrev", "ecere::com::IteratorPointer GetPrev(ecere::com::IteratorPointer pointer)", __ecereMethod___ecereNameSpace__ecere__com__Container_GetPrev, 1);
1634 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetNext", "ecere::com::IteratorPointer GetNext(ecere::com::IteratorPointer pointer)", __ecereMethod___ecereNameSpace__ecere__com__Container_GetNext, 1);
1635 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetData", "D GetData(ecere::com::IteratorPointer pointer)", __ecereMethod___ecereNameSpace__ecere__com__Container_GetData, 1);
1636 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SetData", "bool SetData(ecere::com::IteratorPointer pointer, D data)", 0, 1);
1637 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetAtPosition", "ecere::com::IteratorPointer GetAtPosition(const I pos, bool create, bool * justAdded)", __ecereMethod___ecereNameSpace__ecere__com__Container_GetAtPosition, 1);
1638 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Insert", "ecere::com::IteratorPointer Insert(ecere::com::IteratorPointer after, T value)", 0, 1);
1639 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Add", "ecere::com::IteratorPointer Add(T value)", 0, 1);
1640 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Remove", "void Remove(ecere::com::IteratorPointer it)", 0, 1);
1641 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Move", "void Move(ecere::com::IteratorPointer it, ecere::com::IteratorPointer after)", 0, 1);
1642 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "RemoveAll", "void RemoveAll()", __ecereMethod___ecereNameSpace__ecere__com__Container_RemoveAll, 1);
1643 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Copy", "void Copy(ecere::com::Container<T> source)", __ecereMethod___ecereNameSpace__ecere__com__Container_Copy, 1);
1644 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Find", "ecere::com::IteratorPointer Find(const D value)", __ecereMethod___ecereNameSpace__ecere__com__Container_Find, 1);
1645 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FreeIterator", "void FreeIterator(ecere::com::IteratorPointer it)", 0, 1);
1646 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetCount", "int GetCount()", __ecereMethod___ecereNameSpace__ecere__com__Container_GetCount, 1);
1647 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Free", "void Free()", __ecereMethod___ecereNameSpace__ecere__com__Container_Free, 1);
1648 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Delete", "void Delete(ecere::com::IteratorPointer i)", __ecereMethod___ecereNameSpace__ecere__com__Container_Delete, 1);
1649 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Sort", "void Sort(bool ascending)", __ecereMethod___ecereNameSpace__ecere__com__Container_Sort, 1);
1650 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "TakeOut", "void TakeOut(const D d)", __ecereMethod___ecereNameSpace__ecere__com__Container_TakeOut, 1);
1651 __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "copySrc", "ecere::com::Container<T>", __ecereProp___ecereNameSpace__ecere__com__Container_Set_copySrc, 0, 1);
1652 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1653 __ecereProp___ecereNameSpace__ecere__com__Container_copySrc = __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc, __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc = (void *)0;
1654 __ecerePropM___ecereNameSpace__ecere__com__Container_firstIterator = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "firstIterator", "ecere::com::Iterator<T>", 0, __ecereProp___ecereNameSpace__ecere__com__Container_Get_firstIterator, 1);
1655 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1656 __ecereProp___ecereNameSpace__ecere__com__Container_firstIterator = __ecerePropM___ecereNameSpace__ecere__com__Container_firstIterator, __ecerePropM___ecereNameSpace__ecere__com__Container_firstIterator = (void *)0;
1657 __ecerePropM___ecereNameSpace__ecere__com__Container_lastIterator = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "lastIterator", "ecere::com::Iterator<T>", 0, __ecereProp___ecereNameSpace__ecere__com__Container_Get_lastIterator, 1);
1658 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1659 __ecereProp___ecereNameSpace__ecere__com__Container_lastIterator = __ecerePropM___ecereNameSpace__ecere__com__Container_lastIterator, __ecerePropM___ecereNameSpace__ecere__com__Container_lastIterator = (void *)0;
1660 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "T", 0, 0, (((void *)0)));
1661 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "I", 0, 0, &__simpleStruct1);
1662 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "D", 0, 0, &__simpleStruct2);
1663 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
1664 if(class)
1665 class->fixed = (unsigned int)1;
1666 }
1667