compiler/libec; ecere; ide: (Emscripten WIP) Address virtual method issues
[sdk] / compiler / bootstrap / ecere / bootstrap / LinkList.c
1 /* Code generated from eC source file: LinkList.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 struct __ecereNameSpace__ecere__com__LinkElement
53 {
54 void * prev, * next;
55 } ecere_gcc_struct;
56
57 struct __ecereNameSpace__ecere__com__LinkList
58 {
59 void * first, * last;
60 int count;
61 } ecere_gcc_struct;
62
63 struct __ecereNameSpace__ecere__sys__BTNode;
64
65 struct __ecereNameSpace__ecere__sys__OldList
66 {
67 void *  first;
68 void *  last;
69 int count;
70 unsigned int offset;
71 unsigned int circ;
72 } ecere_gcc_struct;
73
74 struct __ecereNameSpace__ecere__com__DataValue
75 {
76 union
77 {
78 char c;
79 unsigned char uc;
80 short s;
81 unsigned short us;
82 int i;
83 unsigned int ui;
84 void *  p;
85 float f;
86 double d;
87 long long i64;
88 uint64 ui64;
89 } ecere_gcc_struct __anon1;
90 } ecere_gcc_struct;
91
92 struct __ecereNameSpace__ecere__com__SerialBuffer
93 {
94 unsigned char *  _buffer;
95 unsigned int count;
96 unsigned int _size;
97 unsigned int pos;
98 } ecere_gcc_struct;
99
100 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
101
102 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
103
104 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
105
106 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
107
108 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void *  memory);
109
110 struct __ecereNameSpace__ecere__com__IteratorPointer;
111
112 struct __ecereNameSpace__ecere__com__ClassTemplateParameter;
113
114 int __ecereVMethodID_class_OnFree;
115
116 struct __ecereNameSpace__ecere__com__Class;
117
118 struct __ecereNameSpace__ecere__com__Instance
119 {
120 void * *  _vTbl;
121 struct __ecereNameSpace__ecere__com__Class * _class;
122 int _refCount;
123 } ecere_gcc_struct;
124
125 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
126
127 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, long long value);
128
129 extern void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base);
130
131 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char *  name, void *  function);
132
133 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
134
135 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove;
136
137 struct __ecereNameSpace__ecere__com__Property;
138
139 struct __ecereNameSpace__ecere__com__Property
140 {
141 struct __ecereNameSpace__ecere__com__Property * prev;
142 struct __ecereNameSpace__ecere__com__Property * next;
143 const char *  name;
144 unsigned int isProperty;
145 int memberAccess;
146 int id;
147 struct __ecereNameSpace__ecere__com__Class * _class;
148 const char *  dataTypeString;
149 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
150 struct __ecereNameSpace__ecere__com__Instance * dataType;
151 void (*  Set)(void * , int);
152 int (*  Get)(void * );
153 unsigned int (*  IsSet)(void * );
154 void *  data;
155 void *  symbol;
156 int vid;
157 unsigned int conversion;
158 unsigned int watcherOffset;
159 const char *  category;
160 unsigned int compiled;
161 unsigned int selfWatchable;
162 unsigned int isWatchable;
163 } ecere_gcc_struct;
164
165 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
166
167 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);
168
169 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void *  instance, struct __ecereNameSpace__ecere__com__Property * _property, void *  object, void (*  callback)(void * , void * ));
170
171 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
172
173 struct __ecereNameSpace__ecere__com__DataMember;
174
175 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);
176
177 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_New(int type, int declMode);
178
179 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_AddDataMember(struct __ecereNameSpace__ecere__com__DataMember * member, const char *  name, const char *  type, unsigned int size, unsigned int alignment, int declMode);
180
181 extern unsigned int __ecereNameSpace__ecere__com__eMember_AddMember(struct __ecereNameSpace__ecere__com__DataMember * addTo, struct __ecereNameSpace__ecere__com__DataMember * dataMember);
182
183 extern unsigned int __ecereNameSpace__ecere__com__eClass_AddMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__DataMember * dataMember);
184
185 struct __ecereNameSpace__ecere__sys__BinaryTree;
186
187 struct __ecereNameSpace__ecere__sys__BinaryTree
188 {
189 struct __ecereNameSpace__ecere__sys__BTNode * root;
190 int count;
191 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
192 void (*  FreeKey)(void *  key);
193 } ecere_gcc_struct;
194
195 struct __ecereNameSpace__ecere__com__DataMember
196 {
197 struct __ecereNameSpace__ecere__com__DataMember * prev;
198 struct __ecereNameSpace__ecere__com__DataMember * next;
199 const char *  name;
200 unsigned int isProperty;
201 int memberAccess;
202 int id;
203 struct __ecereNameSpace__ecere__com__Class * _class;
204 const char *  dataTypeString;
205 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
206 struct __ecereNameSpace__ecere__com__Instance * dataType;
207 int type;
208 int offset;
209 int memberID;
210 struct __ecereNameSpace__ecere__sys__OldList members;
211 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
212 int memberOffset;
213 short structAlignment;
214 short pointerAlignment;
215 } ecere_gcc_struct;
216
217 struct __ecereNameSpace__ecere__com__ListItem;
218
219 struct __ecereNameSpace__ecere__com__ListItem
220 {
221 union
222 {
223 struct __ecereNameSpace__ecere__com__LinkElement link;
224 struct
225 {
226 struct __ecereNameSpace__ecere__com__ListItem * prev, * next;
227 } ecere_gcc_struct __anon1;
228 } ecere_gcc_struct __anon1;
229 } ecere_gcc_struct;
230
231 struct __ecereNameSpace__ecere__com__Method;
232
233 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
234 {
235 union
236 {
237 struct
238 {
239 const char *  dataTypeString;
240 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
241 } ecere_gcc_struct __anon1;
242 struct __ecereNameSpace__ecere__com__DataValue expression;
243 struct
244 {
245 const char *  memberString;
246 union
247 {
248 struct __ecereNameSpace__ecere__com__DataMember * member;
249 struct __ecereNameSpace__ecere__com__Property * prop;
250 struct __ecereNameSpace__ecere__com__Method * method;
251 } ecere_gcc_struct __anon1;
252 } ecere_gcc_struct __anon2;
253 } ecere_gcc_struct __anon1;
254 } ecere_gcc_struct;
255
256 struct __ecereNameSpace__ecere__com__Method
257 {
258 const char *  name;
259 struct __ecereNameSpace__ecere__com__Method * parent;
260 struct __ecereNameSpace__ecere__com__Method * left;
261 struct __ecereNameSpace__ecere__com__Method * right;
262 int depth;
263 int (*  function)();
264 int vid;
265 int type;
266 struct __ecereNameSpace__ecere__com__Class * _class;
267 void *  symbol;
268 const char *  dataTypeString;
269 struct __ecereNameSpace__ecere__com__Instance * dataType;
270 int memberAccess;
271 } ecere_gcc_struct;
272
273 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);
274
275 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);
276
277 struct __ecereNameSpace__ecere__com__Module;
278
279 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);
280
281 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
282
283 struct __ecereNameSpace__ecere__com__NameSpace;
284
285 struct __ecereNameSpace__ecere__com__NameSpace
286 {
287 const char *  name;
288 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
289 struct __ecereNameSpace__ecere__com__NameSpace *  left;
290 struct __ecereNameSpace__ecere__com__NameSpace *  right;
291 int depth;
292 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
293 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
294 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
295 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
296 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
297 } ecere_gcc_struct;
298
299 struct __ecereNameSpace__ecere__com__Class
300 {
301 struct __ecereNameSpace__ecere__com__Class * prev;
302 struct __ecereNameSpace__ecere__com__Class * next;
303 const char *  name;
304 int offset;
305 int structSize;
306 void * *  _vTbl;
307 int vTblSize;
308 unsigned int (*  Constructor)(void * );
309 void (*  Destructor)(void * );
310 int offsetClass;
311 int sizeClass;
312 struct __ecereNameSpace__ecere__com__Class * base;
313 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
314 struct __ecereNameSpace__ecere__sys__BinaryTree members;
315 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
316 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
317 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
318 struct __ecereNameSpace__ecere__sys__OldList derivatives;
319 int memberID;
320 int startMemberID;
321 int type;
322 struct __ecereNameSpace__ecere__com__Instance * module;
323 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
324 const char *  dataTypeString;
325 struct __ecereNameSpace__ecere__com__Instance * dataType;
326 int typeSize;
327 int defaultAlignment;
328 void (*  Initialize)();
329 int memberOffset;
330 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
331 const char *  designerClass;
332 unsigned int noExpansion;
333 const char *  defaultProperty;
334 unsigned int comRedefinition;
335 int count;
336 int isRemote;
337 unsigned int internalDecl;
338 void *  data;
339 unsigned int computeSize;
340 short structAlignment;
341 short pointerAlignment;
342 int destructionWatchOffset;
343 unsigned int fixed;
344 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
345 int inheritanceAccess;
346 const char *  fullName;
347 void *  symbol;
348 struct __ecereNameSpace__ecere__sys__OldList conversions;
349 struct __ecereNameSpace__ecere__sys__OldList templateParams;
350 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
351 struct __ecereNameSpace__ecere__com__Class * templateClass;
352 struct __ecereNameSpace__ecere__sys__OldList templatized;
353 int numParams;
354 unsigned int isInstanceClass;
355 unsigned int byValueSystemClass;
356 } ecere_gcc_struct;
357
358 struct __ecereNameSpace__ecere__com__Application
359 {
360 int argc;
361 const char * *  argv;
362 int exitCode;
363 unsigned int isGUIApp;
364 struct __ecereNameSpace__ecere__sys__OldList allModules;
365 char *  parsedCommand;
366 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
367 } ecere_gcc_struct;
368
369 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__LinkElement;
370
371 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ListItem;
372
373 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__LinkList;
374
375 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
376
377 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
378
379 struct __ecereNameSpace__ecere__com__Module
380 {
381 struct __ecereNameSpace__ecere__com__Instance * application;
382 struct __ecereNameSpace__ecere__sys__OldList classes;
383 struct __ecereNameSpace__ecere__sys__OldList defines;
384 struct __ecereNameSpace__ecere__sys__OldList functions;
385 struct __ecereNameSpace__ecere__sys__OldList modules;
386 struct __ecereNameSpace__ecere__com__Instance * prev;
387 struct __ecereNameSpace__ecere__com__Instance * next;
388 const char *  name;
389 void *  library;
390 void *  Unload;
391 int importType;
392 int origImportType;
393 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
394 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
395 } ecere_gcc_struct;
396
397 void * __ecereMethod___ecereNameSpace__ecere__com__LinkList_GetFirst(struct __ecereNameSpace__ecere__com__Instance * this)
398 {
399 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
400
401 return ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->first)));
402 }
403
404 void * __ecereMethod___ecereNameSpace__ecere__com__LinkList_GetLast(struct __ecereNameSpace__ecere__com__Instance * this)
405 {
406 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
407
408 return ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->last)));
409 }
410
411 void * __ecereMethod___ecereNameSpace__ecere__com__LinkList_GetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer)
412 {
413 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
414
415 return (void *)pointer;
416 }
417
418 unsigned int __ecereMethod___ecereNameSpace__ecere__com__LinkList_SetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer, uint64 data)
419 {
420 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
421
422 return 0;
423 }
424
425 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__LinkList_Find(struct __ecereNameSpace__ecere__com__Instance * this, uint64 value)
426 {
427 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
428
429 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)((void *)((uintptr_t)(value)));
430 }
431
432 void __ecereMethod___ecereNameSpace__ecere__com__LinkList_Delete(struct __ecereNameSpace__ecere__com__Instance * this, void * item)
433 {
434 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
435
436 (__extension__ ({
437 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it);
438
439 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
440 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
441
442 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__LinkList->_vTbl;
443 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove]);
444 __internal_VirtualMethod ? __internal_VirtualMethod(this, item) : (void)1;
445 }));
446 (__ecereNameSpace__ecere__com__eSystem_Delete(item), item = 0);
447 }
448
449 void * __ecereMethod___ecereNameSpace__ecere__com__LinkList_GetPrev(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * item)
450 {
451 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
452
453 return ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)item)) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)));
454 }
455
456 void * __ecereMethod___ecereNameSpace__ecere__com__LinkList_GetNext(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * item)
457 {
458 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
459
460 return ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)item)) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)));
461 }
462
463 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__LinkList_GetAtPosition(struct __ecereNameSpace__ecere__com__Instance * this, const uint64 pos, unsigned int create, unsigned int * justAdded)
464 {
465 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
466 int c;
467 void * item;
468
469 for(c = 0, item = ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->first))); c < (int)((const uint64)(pos)) && item; c++, item = ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next))))
470 ;
471 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)((void *)((uintptr_t)(item)));
472 }
473
474 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__LinkList_Add(struct __ecereNameSpace__ecere__com__Instance * this, uint64 item)
475 {
476 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
477
478 if(item)
479 {
480 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev = ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->last)));
481 if((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)
482 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)(item)));
483 if(!((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->first))))
484 __ecerePointer___ecereNameSpace__ecere__com__LinkList->first = ((void * )((uintptr_t)(item)));
485 __ecerePointer___ecereNameSpace__ecere__com__LinkList->last = ((void * )((uintptr_t)(item)));
486 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)((*(unsigned int *)&((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[4]) ? ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->first))) : (((void *)0)))));
487 if((*(unsigned int *)&((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[4]))
488 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->first)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev = ((void * )((uintptr_t)(item)));
489 __ecerePointer___ecereNameSpace__ecere__com__LinkList->count++;
490 }
491 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)((void *)((uintptr_t)(item)));
492 }
493
494 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__LinkList_Insert(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * _prevItem, uint64 item)
495 {
496 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
497 void * prevItem = (void *)_prevItem;
498
499 if(item && prevItem != ((void * )((uintptr_t)(item))))
500 {
501 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)(uintptr_t)((uint64)(item))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev = ((void * )((uintptr_t)(prevItem ? ((void * )((uintptr_t)(prevItem))) : (((void * )((uintptr_t)((*(unsigned int *)&((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[4]) ? ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->last))) : (((void *)0)))))))));
502 if(prevItem)
503 {
504 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)(uintptr_t)((uint64)(item))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(prevItem)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)));
505 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(prevItem)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)(item)));
506 }
507 else
508 {
509 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)(uintptr_t)((uint64)(item))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->first)));
510 __ecerePointer___ecereNameSpace__ecere__com__LinkList->first = ((void * )((uintptr_t)(item)));
511 if((*(unsigned int *)&((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[4]))
512 {
513 if((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)(uintptr_t)((uint64)(item))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)
514 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)(uintptr_t)((uint64)(item))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)(item)));
515 else
516 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)(uintptr_t)((uint64)(item))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)(item)));
517 }
518 }
519 if(((void * )((uintptr_t)(prevItem))) == ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->last))))
520 __ecerePointer___ecereNameSpace__ecere__com__LinkList->last = ((void * )((uintptr_t)(item)));
521 if((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)(uintptr_t)((uint64)(item))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)
522 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)(uintptr_t)((uint64)(item))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev = ((void * )((uintptr_t)(item)));
523 __ecerePointer___ecereNameSpace__ecere__com__LinkList->count++;
524 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)((uintptr_t)((uint64)(item)));
525 }
526 return (((void *)0));
527 }
528
529 void __ecereMethod___ecereNameSpace__ecere__com__LinkList_Remove(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * _item)
530 {
531 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
532 void * item = (void *)_item;
533
534 if(item)
535 {
536 if((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)
537 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)));
538 if((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)
539 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev = ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)));
540 if((*(unsigned int *)&((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[4]) && ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->last))) == ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->first))))
541 __ecerePointer___ecereNameSpace__ecere__com__LinkList->last = __ecerePointer___ecereNameSpace__ecere__com__LinkList->first = (((void *)0));
542 else
543 {
544 if(((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->last))) == ((void * )((uintptr_t)(item))))
545 __ecerePointer___ecereNameSpace__ecere__com__LinkList->last = ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)));
546 if(((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->first))) == ((void * )((uintptr_t)(item))))
547 __ecerePointer___ecereNameSpace__ecere__com__LinkList->first = ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)));
548 }
549 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev = (((void *)0));
550 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = (((void *)0));
551 __ecerePointer___ecereNameSpace__ecere__com__LinkList->count--;
552 }
553 }
554
555 void __ecereMethod___ecereNameSpace__ecere__com__LinkList_Move(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * _item, struct __ecereNameSpace__ecere__com__IteratorPointer * _prevItem)
556 {
557 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
558 void * item = (void *)_item;
559 void * prevItem = (void *)_prevItem;
560
561 if(item)
562 {
563 if(((void * )((uintptr_t)(prevItem))) != ((void * )((uintptr_t)(item))) && (((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->first))) != ((void * )((uintptr_t)(item))) || prevItem))
564 {
565 if((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)
566 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)));
567 if((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)
568 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev = ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)));
569 if(((void * )((uintptr_t)(item))) == ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->first))))
570 __ecerePointer___ecereNameSpace__ecere__com__LinkList->first = ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)));
571 if(((void * )((uintptr_t)(item))) == ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->last))))
572 __ecerePointer___ecereNameSpace__ecere__com__LinkList->last = ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)));
573 if(((void * )((uintptr_t)(prevItem))) == ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->last))))
574 __ecerePointer___ecereNameSpace__ecere__com__LinkList->last = ((void * )((uintptr_t)(item)));
575 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev = ((void * )((uintptr_t)(prevItem ? ((void * )((uintptr_t)(prevItem))) : (((void * )((uintptr_t)((*(unsigned int *)&((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[4]) ? ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->last))) : (((void *)0)))))))));
576 if(prevItem)
577 {
578 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(prevItem)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)));
579 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(prevItem)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)(item)));
580 }
581 else
582 {
583 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->first)));
584 __ecerePointer___ecereNameSpace__ecere__com__LinkList->first = ((void * )((uintptr_t)(item)));
585 if((*(unsigned int *)&((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[4]))
586 {
587 if((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)
588 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)(item)));
589 else
590 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next = ((void * )((uintptr_t)(item)));
591 }
592 }
593 if((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)
594 (*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void * )((uintptr_t)((*(struct __ecereNameSpace__ecere__com__LinkElement *)(((unsigned char *)((void *)((uintptr_t)(item)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).next)))) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->offset + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon2.__anon1.member->_class->offset)).prev = ((void * )((uintptr_t)(item)));
595 }
596 }
597 }
598
599 void __ecereMethod___ecereNameSpace__ecere__com__LinkList_Free(struct __ecereNameSpace__ecere__com__Instance * this)
600 {
601 __attribute__((unused)) struct __ecereNameSpace__ecere__com__LinkList * __ecerePointer___ecereNameSpace__ecere__com__LinkList = (struct __ecereNameSpace__ecere__com__LinkList *)(this ? (((char *)this) + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance)) : 0);
602 void * item;
603
604 while((item = ((void * )((uintptr_t)(__ecerePointer___ecereNameSpace__ecere__com__LinkList->first)))))
605 {
606 (__extension__ ({
607 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it);
608
609 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
610 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
611
612 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__LinkList->_vTbl;
613 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove]);
614 __internal_VirtualMethod ? __internal_VirtualMethod(this, ((void *)((uintptr_t)(item)))) : (void)1;
615 }));
616 (((void (* )(void *  _class, void *  data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].__anon1.__anon1.dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance * )(char * )this)->_class->templateArgs[3].__anon1.__anon1.dataTypeClass, ((void * )((uintptr_t)(item)))), item = 0);
617 }
618 }
619
620 void __ecereUnregisterModule_LinkList(struct __ecereNameSpace__ecere__com__Instance * module)
621 {
622
623 }
624
625 void __ecereRegisterModule_LinkList(struct __ecereNameSpace__ecere__com__Instance * module)
626 {
627 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct3 =
628 {
629
630 .__anon1 = {
631
632 .__anon1 = {
633 .dataTypeString = "LT::link"
634 }
635 }
636 };
637 struct __ecereNameSpace__ecere__com__DataValue __simpleStruct2 =
638 {
639
640 .__anon1 = {
641 .c = 0
642 }
643 };
644 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct1 =
645 {
646
647 .__anon1 = {
648
649 .__anon1 = {
650 .dataTypeString = 0
651 }, .expression = (__simpleStruct2.__anon1.ui64 = 0, __simpleStruct2)
652 }
653 };
654 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct0 =
655 {
656
657 .__anon1 = {
658
659 .__anon1 = {
660 .dataTypeString = "ecere::com::ListItem"
661 }
662 }
663 };
664 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
665
666 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::LinkElement", 0, sizeof(struct __ecereNameSpace__ecere__com__LinkElement), 0, (void *)0, (void *)0, module, 4, 1);
667 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)
668 __ecereClass___ecereNameSpace__ecere__com__LinkElement = class;
669 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "T", sizeof(void *), 0xF000F000, 1);
670 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "T", sizeof(void *), 0xF000F000, 1);
671 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "T", 0, "void *", (((void *)0)));
672 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
673 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ListItem", "ecere::com::IteratorPointer", sizeof(struct __ecereNameSpace__ecere__com__ListItem), 0, (void *)0, (void *)0, module, 4, 1);
674 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)
675 __ecereClass___ecereNameSpace__ecere__com__ListItem = class;
676 {
677 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
678
679 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "link", "ecere::com::LinkElement<thisclass>", sizeof(struct __ecereNameSpace__ecere__com__LinkElement), 8, 1);
680 {
681 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
682
683 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "prev", "thisclass", sizeof(void *), 0xF000F000, 1);
684 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "next", "thisclass", sizeof(void *), 0xF000F000, 1);
685 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
686 }
687 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
688 }
689 if(class)
690 class->fixed = (unsigned int)1;
691 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::LinkList", "ecere::com::Container<LT>", sizeof(struct __ecereNameSpace__ecere__com__LinkList), 0, (void *)0, (void *)0, module, 4, 1);
692 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)
693 __ecereClass___ecereNameSpace__ecere__com__LinkList = class;
694 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetFirst", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_GetFirst, 1);
695 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetLast", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_GetLast, 1);
696 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetPrev", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_GetPrev, 1);
697 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetNext", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_GetNext, 1);
698 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetData", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_GetData, 1);
699 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "SetData", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_SetData, 1);
700 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetAtPosition", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_GetAtPosition, 1);
701 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Insert", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_Insert, 1);
702 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_Add, 1);
703 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_Remove, 1);
704 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Move", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_Move, 1);
705 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_Find, 1);
706 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_Free, 1);
707 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Delete", 0, __ecereMethod___ecereNameSpace__ecere__com__LinkList_Delete, 1);
708 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "first", "LT", sizeof(void *), 0xF000F000, 1);
709 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "last", "LT", sizeof(void *), 0xF000F000, 1);
710 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
711 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "LT", 0, "void *", &__simpleStruct0);
712 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "circ", 2, "bool", &__simpleStruct1);
713 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "link", 1, (void *)0, &__simpleStruct3);
714 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
715 if(class)
716 class->fixed = (unsigned int)1;
717 }
718