#ifdef __cplusplus extern "C" { #endif /* ANSI C code generated by SmartEiffel The GNU Eiffel Compiler, Eiffel tools and libraries Release 2.4 (??? June ??th 2009) [????] Copyright (C), 1994-2002 - INRIA - LORIA - ESIAL UHP Nancy 1 - FRANCE Copyright (C), 2003-2005 - INRIA - LORIA - IUT Charlemagne Nancy 2 - FRANCE D.COLNET, P.RIBET, C.ADRIAN, V.CROIZIER F.MERIZEN - SmartEiffel@loria.fr http://SmartEiffel.loria.fr C Compiler options used: -pipe -O3 -fomit-frame-pointer */ #ifdef __cplusplus } #endif #include "xinput_ivy.h" #ifdef __cplusplus extern "C" { #endif /* -- ------------------------------------------------------------------------------------------------------------ -- Copyright notice below. Please read. -- -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE -- Copyright(C) 2003-2005: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE -- -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -- documentation files (the "Software"), to deal in the Software without restriction, including without -- limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -- the Software, and to permit persons to whom the Software is furnished to do so, subject to the following -- conditions: -- -- The above copyright notice and this permission notice shall be included in all copies or substantial -- portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -- EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -- OR OTHER DEALINGS IN THE SOFTWARE. -- -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr -- ------------------------------------------------------------------------------------------------------------ */ /* This file (SmartEiffel/sys/runtime/base.c) is included for _all_ modes of compilation (-boost, -no_check, ... -all_check). */ /* Byte swapping function */ void copy_swap_16(const uint16_t *src, uint16_t *dest, int count){ while (count--) { *dest++ = (*src << 8) | (*src >> 8); src++; } } /* The wrapper for `malloc' (generated C code is supposed to use only `se_malloc' instead of direct `malloc'). */ void* se_malloc(size_t size) { void *result = malloc(size); if (result == NULL) { handle(SE_HANDLE_NO_MORE_MEMORY, NULL); #ifdef SE_EXCEPTIONS internal_exception_handler(No_more_memory); #elif !defined(SE_BOOST) error0("No more memory.", NULL); #else fprintf(SE_ERR,"No more memory (malloc failed).\n"); exit(EXIT_FAILURE); #endif } return result; } /* The wrapper for `calloc' (generated C code is supposed to use only `se_calloc' instead of direct `calloc'). */ void* se_calloc(size_t nmemb, size_t size) { void *result = calloc(nmemb,size); if (result == NULL) { handle(SE_HANDLE_NO_MORE_MEMORY, NULL); #ifdef SE_EXCEPTIONS internal_exception_handler(No_more_memory); #elif !defined(SE_BOOST) error0("No more memory.", NULL); #else fprintf(SE_ERR,"No more memory (calloc failed).\n"); exit(EXIT_FAILURE); #endif } return result; } /* The wrapper for `realloc' (generated C code is supposed to use only `se_realloc' instead of direct `realloc'). */ void* se_realloc(void* src, size_t size) { void *result = realloc(src, size); if (result == NULL) { handle(SE_HANDLE_NO_MORE_MEMORY, NULL); #ifdef SE_EXCEPTIONS internal_exception_handler(No_more_memory); #elif !defined(SE_BOOST) error0("No more memory.", NULL); #else fprintf(SE_ERR,"No more memory (realloc failed).\n"); exit(EXIT_FAILURE); #endif } return result; } /* ---------------------------------------------------------------------- */ void se_die (int code) { handle(SE_HANDLE_DIE_WITH_CODE, &code); exit(code); } /* Runtime hooks */ static se_runtime_handler_t** handlers = NULL; int handlers_count=0; void register_handler(se_runtime_handler_t*handler) { int new_count = handlers_count + 1; handlers = (se_runtime_handler_t**)se_realloc(handlers, (new_count) * sizeof(void*)); handlers[handlers_count] = handler; handlers_count = new_count; } void _handle(se_handler_action_t action, void*data) { int i; for (i = 0; i < handlers_count; i++) { handlers[i](action, data); /* *** Check type of this array. Function pointer may have different size from data pointer. (PH 17/07/08) */ } } #if IsXExtensionPointer int x_device_info_is_available_extension(XDeviceInfo *device_list, int index) { int use = device_list[index].use; return (use == IsXExtensionDevice) || (use == IsXExtensionKeyboard) || (use == IsXExtensionPointer); } #else /* Defined in .h */ #endif void x_key_info_init(XKeyInfo *info, int *min_k, int *max_k, int *num_k) { *min_k = info->min_keycode; *max_k = info->max_keycode; *num_k = info->num_keys; } void x_valuator_info_init(XValuatorInfo *info, int *nb_axes, int *is_absolute, int *buf_size) { *nb_axes = info->num_axes; *is_absolute = (info->mode == Absolute); *buf_size = info->motion_buffer; } void * x_device_init_events(XDevice * device, int * events_id) { XEventClass * result; result = malloc(7 * sizeof(XEventClass)); /* see also x_device_select_events */ DeviceKeyPress(device, events_id[0], result[0]); DeviceKeyRelease(device, events_id[1], result[1]); DeviceButtonPress(device, events_id[2], result[2]); DeviceButtonRelease(device, events_id[3], result[3]); DeviceMotionNotify(device, events_id[4], result[4]); ProximityIn(device, events_id[5], result[5]); ProximityOut(device, events_id[6], result[6]); return result; } void x_device_select_events(void * window, XEventClass * events_classes) { XSelectExtensionEvent(dpy, (Window)window, events_classes, 7); } /* -- ------------------------------------------------------------------------------------------------------------ -- Copyright notice below. Please read. -- -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE -- Copyright(C) 2003-2005: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE -- -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -- documentation files (the "Software"), to deal in the Software without restriction, including without -- limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -- the Software, and to permit persons to whom the Software is furnished to do so, subject to the following -- conditions: -- -- The above copyright notice and this permission notice shall be included in all copies or substantial -- portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -- EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -- OR OTHER DEALINGS IN THE SOFTWARE. -- -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr -- ------------------------------------------------------------------------------------------------------------ */ #ifdef WIN32 HINSTANCE main_hInstance; int main_nCmdShow; const char *CLASSNAME="Vision window"; MSG last_message; HDC hdc; HWND hwnd; PAINTSTRUCT paintstruct; RECT windowRect; DWORD message_thread_id; DWORD main_thread_id; static HANDLE message_thread_handle; int decorated_window_x_offset; int decorated_window_y_offset; int decorated_window_width_offset; int decorated_window_height_offset; HANDLE sem_paint; HANDLE sem_new_window; HANDLE sem_thread_finished_work; HANDLE sems_wait_end_paint[3]; # ifndef WM_MOUSELEAVE # define WM_MOUSELEAVE 0x2a3 # endif # define WM_MOUSEENTER (WM_USER + 5) HWND pointer_window=NULL; int button_swapped; /* This list is a ring. It is "empty" when first_message == first_free. */ /* empty means "no message enqueued". Cells remains to avoid malloc/free. */ /* Used for messages sent from the message's thread to the main thread. */ struct message_list {struct message_list * next; MSG msg;}; volatile static struct message_list *first_message; volatile static struct message_list *first_free; /* This list is a ring. It is "empty" when first_cmd == first_free_cmd. */ /* empty means "no message enqueued". Cells remains to avoid malloc/free. */ /* Used for commands sent from the main thread to the message's thread. */ volatile struct cmd_list *first_cmd; volatile struct cmd_list *first_free_cmd; HANDLE sem_cmd_ready; HANDLE sems_wait_cmd[2]; window_description screen_desc; #else # include Display *dpy; /* X server connection */ int red_mask, green_mask, blue_mask; int red_shift, blue_shift, green_shift; XEvent last_event; int vision_error_handler(Display *disp, XErrorEvent *err); Atom atom_DELWIN = 0; Atom atom_PROTOCOLS = 0; #endif #ifdef WIN32 static DWORD WINAPI MessageCallBackThread(LPVOID unused); static void vision_handler(se_handler_action_t action, void *data) { switch(action) { case SE_HANDLE_NO_MORE_MEMORY: case SE_HANDLE_RUNTIME_ERROR: case SE_HANDLE_DIE_WITH_CODE: case SE_HANDLE_NORMAL_EXIT: CloseHandle(message_thread_handle); } } static void run_first_cmd(void) { vision_check(first_cmd != first_free_cmd); /* non empty list */ switch (first_cmd->cmd_type) { case SET_TITLE: if (!*(char*)first_cmd->param2) vision_check_call(SetWindowText ((HWND)first_cmd->param1, " ")); else vision_check_call(SetWindowText ((HWND)first_cmd->param1, (char *)first_cmd->param2)); break; case CLEAR_AREA: vision_check_call(InvalidateRect((HWND)first_cmd->param1, (RECT*)(&(first_cmd->param2)), TRUE)); break; case MAP_WINDOW: ShowWindow((HWND)(first_cmd->param1), first_cmd->param2); break; case MOVE_WINDOW: vision_check_call(MoveWindow((HWND)first_cmd->param1, first_cmd->param2, first_cmd->param3, first_cmd->param4, first_cmd->param5, first_cmd->param6)); break; case SET_FOCUS: vision_check_call(SetFocus((HWND)first_cmd->param1)); break; } first_cmd = first_cmd->next; } void emit_event(int event, HWND window) { MSG *msg = (MSG*)&(first_free->msg); msg->hwnd = window; msg->message = event; msg->time = timeGetTime(); vision_check_call(GetCursorPos(&(msg->pt))); if (first_free->next == first_message) { struct message_list *new_cell = malloc(sizeof(struct message_list)); new_cell->next = first_free->next; first_free->next = new_cell; first_free = new_cell; /* don't merge with previous line, first_free * is the last change done and * then the consumer may use this cell */ } else { first_free = first_free->next; } vision_check_call(ReleaseSemaphore(sem_msg_ready, 1, NULL)); } static void generate_leave_enter_events(window_description* from, window_description* to){ if (to->marked) { /* End recursivity case */ window_description* wnd = from; to->marked = 0; if (wnd) { while(wnd->marked) { emit_event(WM_MOUSELEAVE, wnd->Current); wnd->marked = 0; wnd = wnd->parent; }; wnd = wnd->parent; } while(wnd) { wnd->marked = 0; wnd = wnd->parent; }; } else { /* recursive call */ generate_leave_enter_events(from, to->parent); emit_event(WM_MOUSEENTER, to->Current); } } static DWORD WINAPI MessageCallBackThread(LPVOID unused) { /* --TODO: ExitThread ? CloseHandle in the main thread ? */ MSG local_message; BOOL status; /* Send "ready" message */ vision_check_call(PostThreadMessage(main_thread_id, WM_USER+2, 0, 0)); while(1){ status = MsgWaitForMultipleObjects(2, sems_wait_cmd, FALSE, INFINITE, QS_ALLINPUT); if (status == WAIT_OBJECT_0 + 2) { while(PeekMessage(&local_message, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&local_message); } else if (status == WAIT_OBJECT_0) { run_first_cmd(); } else { vision_check(status == WAIT_OBJECT_0 + 1); /* Request to create new window */ new_window(); } } return 0; } void display_error(int num) { LPVOID lpMsgBuf; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, num, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL); MessageBox(NULL, lpMsgBuf, "GetLastError", MB_OK|MB_ICONINFORMATION); LocalFree(lpMsgBuf); } LRESULT CALLBACK WndProc(HWND hWnd, unsigned int iMessage, WPARAM wParam, LPARAM lParam) { MSG * msg; switch (iMessage) { case WM_SIZING: { int edge = wParam; RECT *rect = (LPRECT)lParam; window_description *desc = (window_description*)GetWindowLong((HWND)hWnd, GWL_USERDATA); int width = rect->right - rect->left; int height = rect->bottom - rect->top; if (edge % 3 == 1) { /* Left border control */ if (width < desc->min_width) rect->left -= (desc->min_width - width); else if (width > desc->max_width) rect->left += (width - desc->max_width); } else if (edge % 3 == 2) { /* Right border control */ if (width < desc->min_width) rect->right += (desc->min_width - width); else if (width > desc->max_width) rect->right -= (width - desc->max_width); } if (edge >= 6) { /* Bottom border control */ if (height < desc->min_height) rect->bottom += (desc->min_height - height); else if (height > desc->max_height) rect->bottom -= (height - desc->max_height); } else if (edge >= 3) { /* Top border control */ if (height < desc->min_height) rect->top -= (desc->min_height - height); else if (height > desc->max_height) rect->top += (height - desc->max_height); } return TRUE; } case WM_ERASEBKGND: return 0; case WM_PAINT: hwnd = hWnd; hdc = BeginPaint(hWnd, &paintstruct); vision_check(hdc); break; /* no return !!! */ case WM_MOUSEMOVE: if (hWnd != pointer_window) { window_description* from=NULL; window_description* to; RECT rect; vision_check_call(GetClientRect(hWnd, &rect)); if (!(LOWORD(lParam)<0 || LOWORD(lParam)>=rect.right || HIWORD(lParam)<0 || HIWORD(lParam)>=rect.bottom)) { if (pointer_window) { window_description* wnd; from = wnd = (window_description*)GetWindowLong((HWND)pointer_window, GWL_USERDATA); do { wnd->marked = 1; wnd = wnd->parent; } while (wnd); } else screen_desc.marked = 1; to = (window_description*)GetWindowLong(hWnd, GWL_USERDATA); generate_leave_enter_events(from, to); pointer_window = hWnd; } } else { RECT rect; vision_check_call(GetClientRect(hWnd, &rect)); if (LOWORD(lParam)<0 || LOWORD(lParam)>=rect.right || HIWORD(lParam)<0 || HIWORD(lParam)>=rect.bottom) { window_description* wnd; wnd = (window_description*)GetWindowLong((HWND)pointer_window, GWL_USERDATA); emit_event(WM_MOUSELEAVE, hWnd); pointer_window = wnd->parent->Current; } } break; /* no return !!! */ case WM_KILLFOCUS: /* --TODO: it's keyboard focus. Useful ? */ break; /* no return !!! */ case WM_NCACTIVATE: if ((BOOL)wParam) return DefWindowProc(hWnd, iMessage, wParam, lParam); else return TRUE; case WM_ACTIVATE: if (LOWORD(wParam)) return DefWindowProc(hWnd, iMessage, wParam, lParam); else { window_description* desc; desc = (window_description*)GetWindowLong((HWND) lParam, GWL_USERDATA); /* --TODO: check if this window belongs to this program instead of just testing if desc is not null (list all toplevel windows?) */ if (!desc || desc->decorated) { DefWindowProc(hWnd, WM_NCACTIVATE, FALSE, lParam); return DefWindowProc(hWnd, iMessage, wParam, lParam); } else return FALSE; } case WM_LBUTTONDOWN: case WM_MBUTTONDOWN: case WM_RBUTTONDOWN: SetCapture(hWnd); break; /* no return !!! */ case WM_LBUTTONUP: case WM_MBUTTONUP: case WM_RBUTTONUP: ReleaseCapture(); break; /* no return !!! */ case WM_MOUSEWHEEL: { /* Search window under mouse cursor and convert coordinates */ POINT p; p.x = (short) LOWORD(lParam); p.y = (short) HIWORD(lParam); hWnd = WindowFromPoint(p); ScreenToClient(hWnd, &p); lParam = POINTTOPOINTS(p); } break; /* no return !!! */ case WM_KEYDOWN: case WM_KEYUP: case WM_SETFOCUS: case WM_SHOWWINDOW: case WM_CLOSE: case WM_QUIT: case WM_DESTROY: case WM_MOVE: case WM_SIZE: break; default: return DefWindowProc(hWnd, iMessage, wParam, lParam); } msg = (MSG*)&(first_free->msg); msg->hwnd = hWnd; msg->message = iMessage; msg->wParam = wParam; msg->lParam = lParam; msg->time = timeGetTime(); vision_check_call(GetCursorPos(&(msg->pt))); if (first_free->next == first_message) { struct message_list *new_cell = malloc(sizeof(struct message_list)); new_cell->next = first_free->next; first_free->next = new_cell; first_free = new_cell; /* don't merge with previous line, first_free * is the last change done and * then the consumer may use this cell */ } else { first_free = first_free->next; } vision_check_call(ReleaseSemaphore(sem_msg_ready, 1, NULL)); if (iMessage == WM_PAINT) { int status; /* Wait for "endpaint" message from appli */ do { status = WaitForMultipleObjects(3, sems_wait_end_paint, FALSE, INFINITE); vision_check(status != WAIT_FAILED); if (status == WAIT_OBJECT_0 + 2) { run_first_cmd(); } else if (status == WAIT_OBJECT_0 + 1) { /* Request to create new window */ new_window(); } } while (status != WAIT_OBJECT_0); EndPaint(hWnd, &paintstruct); hwnd = NULL; hdc = NULL; } return 0; } #else int vision_error_handler(Display *disp, XErrorEvent *err) { char buf[128]; /* in case the error occurred during the Grab command... */ XUngrabServer(disp); XUngrabButton(disp, (unsigned int) AnyButton, 0, DefaultRootWindow(disp)); se_print_run_time_stack(); XGetErrorText(disp, err->error_code, buf, 128); fprintf(SE_ERR,"X Error: %s.\n",buf); fprintf(SE_ERR," Major Opcode: %d\n",err->request_code); exit(-1); } #endif #ifndef WIN32 int higher_bit(int val) { int i=0; while (val >= 0) { val = val << 1; i++; } return 32-i; } #endif int _basic_vision_init(void) { #ifdef WIN32 WNDCLASS WndClass; NONCLIENTMETRICS ncm; main_hInstance = (HINSTANCE)GetModuleHandle(NULL); main_nCmdShow = SW_SHOWDEFAULT; /* First window display mode: minimized, normal, * maximized, hide, ... */ /* Initialize the lists to empty state. */ first_message = first_free = malloc(sizeof(struct message_list)); first_free->next = (struct message_list *)first_message; first_cmd = first_free_cmd = malloc(sizeof(struct cmd_list)); first_free_cmd->next = (struct cmd_list *)first_cmd; sem_paint = CreateSemaphore(NULL, 0, 1, NULL); sem_new_window = CreateSemaphore(NULL, 0, 1, NULL); sem_thread_finished_work = CreateSemaphore(NULL, 0, 1, NULL); sem_msg_ready = CreateSemaphore(NULL, 0, INT32_MAX, NULL); sem_cmd_ready = CreateSemaphore(NULL, 0, INT32_MAX, NULL); sems_wait_end_paint[0] = sem_paint; sems_wait_end_paint[1] = sem_new_window; sems_wait_end_paint[2] = sem_cmd_ready; sems_wait_cmd[0] = sem_cmd_ready; sems_wait_cmd[1] = sem_new_window; screen_desc.Current = NULL; screen_desc.parent = NULL; button_swapped = GetSystemMetrics(SM_SWAPBUTTON); vision_check(sem_paint); vision_check(sem_new_window); vision_check(sem_msg_ready); vision_check(sem_cmd_ready); ncm.cbSize = sizeof(ncm); vision_check_call(SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, 0)); decorated_window_x_offset = GetSystemMetrics(SM_CXFRAME); decorated_window_width_offset = 2* decorated_window_x_offset; decorated_window_y_offset = ncm.iCaptionHeight+decorated_window_x_offset+1; decorated_window_height_offset = decorated_window_y_offset + decorated_window_x_offset; main_thread_id = GetCurrentThreadId(); message_thread_handle = CreateThread(NULL,100 /* ??? */, MessageCallBackThread, NULL, 0, &message_thread_id); vision_check(message_thread_handle); vision_check(message_thread_id); /* Wait for "ready" message from the thread */ vision_check_call(GetMessage(&last_message, NULL, WM_USER+2, WM_USER+2)); register_handler(vision_handler); memset(&WndClass, 0, sizeof(WndClass)); WndClass.cbClsExtra = 0; WndClass.cbWndExtra = sizeof(window_description *); /* extra bytes allocated for window instance <= 40 for Win95, advice: no more than 4 */ WndClass.hbrBackground = GetStockObject(BLACK_BRUSH); WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); WndClass.hIcon = LoadIcon(main_hInstance, NULL); WndClass.hInstance = main_hInstance; WndClass.lpfnWndProc = WndProc; WndClass.lpszClassName = CLASSNAME; WndClass.style = CS_HREDRAW | CS_VREDRAW; /* --TODO: 0 to suppress complete redraw on WM_SIZE and WM_MOVE */ /* use CS_PARENTDC? */ if(!RegisterClass(&WndClass)) exit(0); return -1; #else Visual *visual; /* * Open the display using the $DISPLAY environment variable to locate * the X server. See Section 2.1. */ if ((dpy = XOpenDisplay(NULL)) == NULL) { fprintf(stderr, "Can't open \"%s\"\n", XDisplayName(NULL)); return (0); } # ifdef VISION_DEBUG XSynchronize(dpy, True); # endif XSetErrorHandler(vision_error_handler); visual = DefaultVisual(dpy,DefaultScreen(dpy)); red_mask = visual->red_mask; green_mask = visual->green_mask; blue_mask = visual->blue_mask; if (red_mask) { red_shift = higher_bit(red_mask) - 16; blue_shift = higher_bit(blue_mask) - 16; green_shift = higher_bit(green_mask) - 16; } return(ConnectionNumber(dpy)); #endif } int _basic_vision_character() { /* --TODO: unicode result ! */ int res; #ifdef WIN32 char chars[2]; unsigned char keystate[256]; GetKeyboardState(keystate); ToAscii((int)last_message.wParam,(HIWORD(last_message.lParam)) & 0xFF, keystate,(LPWORD)chars,0); res = (int)chars[0]; #else XKeyEvent* key_event = (XKeyEvent*)&last_event; char r; if(XLookupString(key_event, &r, 1, NULL, NULL)) res = (int)r; else res= 0; #endif return res; } int _basic_vision_key() { int res; #ifdef WIN32 res = _basic_vision_character(); #else XKeyEvent* key_event = (XKeyEvent*)&last_event; res = (int)XKeycodeToKeysym(dpy, key_event->keycode, 0); if(res == NoSymbol) res = 0; #endif return res; } int basic_vision_get_keysym(char* string) { int res = 0; #ifdef WIN32 #else res = (int)XStringToKeysym(string); if(res == NoSymbol) res = 0; #endif return res; } #ifdef WIN32 static int exist_message(UINT type, HWND window) { struct message_list *msg = (struct message_list *)first_message; while (msg != first_free) { if ((msg->msg.message == type) && (msg->msg.hwnd == window)) return 1; msg = msg->next; } return 0; } #endif static int get_next_event(void); int _basic_vision_next_event(void) { int result; while((result=get_next_event())==-2); return result; } static int get_next_event(void) { /* return event number, -1 if no event is available, -2 if new call to * this function is needed. */ #ifdef WIN32 if (last_message.message==WM_PAINT) { SetBkMode(hdc, TRANSPARENT); TextOut(hdc, 0, 0, " ", 1); /* THIS IS AWFUL HACK FOR WINDOWS 2000 */ /* --TODO: search if some "flushing" is required for Windows 2000 */ vision_check_call(ReleaseSemaphore(sem_paint, 1, NULL)); last_message.message = -1; } if (first_message != first_free){ /* non empty list */ last_message = first_message->msg; first_message = first_message->next; vision_check_call(WaitForSingleObject(sem_msg_ready, INFINITE) == WAIT_OBJECT_0); /* never wait, only decrease sem value here */ } else { return -1; } /*printf("Message %d received\n",last_message.message);*/ switch (last_message.message) { case WM_KEYDOWN: last_message.hwnd = pointer_window; return 2; case WM_KEYUP: last_message.hwnd = pointer_window; return 3; case WM_MOUSEENTER: return 7; case WM_MOUSELEAVE: return 8; case WM_SETFOCUS: /* --TODO: it's keyboard focus. Useful ? */ return -2; /*9*/ case WM_KILLFOCUS: /* --TODO: it's keyboard focus. Useful ? */ return -2; /*10*/ case WM_PAINT: if (paintstruct.fErase) { window_description *desc = (window_description*)GetWindowLong((HWND)last_message.hwnd, GWL_USERDATA); /* --TODO: handle pixmap case */ vision_check_call(FillRect(hdc, &(paintstruct.rcPaint), desc->background)); } return 12; /* unmaped ? */ case WM_SHOWWINDOW: return 19; case WM_LBUTTONDOWN: return 40; case WM_MBUTTONDOWN: return 41; case WM_RBUTTONDOWN: return 42; case WM_MOUSEWHEEL: return ((short)HIWORD(last_message.wParam)>0)?43:44; /* --TODO: 120 value...*/ case WM_LBUTTONUP: return 50; case WM_MBUTTONUP: return 51; case WM_RBUTTONUP: return 52; /* fully_visible ? */ /* partially_visible ? */ /* not_visible ? */ case WM_CLOSE: /* user requested to close the window, call DestroyWindow if agree */ return 63; case WM_QUIT: /* application requested to terminate via PostQuitMessage */ printf("Quit !!! \n"); return 63; case WM_DESTROY: /* window is being destroyed. --TODO:process clipboard ! */ printf("Destroy !!! \n"); return 63; case WM_MOUSEMOVE: return 100; case WM_MOVE: /* --TODO: remove ? */ if (exist_message(WM_MOVE, last_message.hwnd)) return -2; windowRect.left = (int) LOWORD(last_message.lParam); windowRect.top = (int) HIWORD(last_message.lParam); return 102; case WM_SIZE: /* --TODO: remove ? */ if (exist_message(WM_SIZE, last_message.hwnd)) return -2; windowRect.right = (int) LOWORD(last_message.lParam); windowRect.bottom = (int) HIWORD(last_message.lParam); return 103; case 280: DefWindowProc(last_message.hwnd, last_message.message, last_message.wParam, last_message.lParam); return -2; /* ??????? */ default: fprintf(stderr,"Event number %d not handled.\n", last_message.message); DefWindowProc(last_message.hwnd, last_message.message, last_message.wParam, last_message.lParam); return -2; } #else XEvent peek; /* if (XEventsQueued(dpy,QueuedAlready)) { */ /*if (XEventsQueued(dpy,QueuedAfterReading)) { */ if (XEventsQueued(dpy,QueuedAfterFlush)) { XNextEvent(dpy,&last_event); switch (last_event.type) { case 4: /* For button press, events 40, 41, ... */ return 39+((XButtonEvent*)&last_event)->button; case 5: /* For button release, events 50, 51, ... */ return 49+((XButtonEvent*)&last_event)->button; case 6: return 100; case 7: if (((XCrossingEvent*)&last_event)->detail == NotifyInferior) return -2; else return 7; case 8: if (((XCrossingEvent*)&last_event)->detail == NotifyInferior) return -2; else return 8; case 9: case 10: ((XFocusChangeEvent*)&last_event)->window = DefaultRootWindow(dpy); return(last_event.type); case 15: return 60+((XVisibilityEvent*)&last_event)->state; case 22: while (XCheckTypedWindowEvent(dpy, last_event.xany.window, 22, &last_event)) ; return 101; /* case 25: *{ *XResizeRequestEvent*e=(XResizeRequestEvent*)&last_event; *printf("Request : %d, %d\n",e->width,e->height); *XResizeWindow(dpy, e->window, e->width, (e->height+4)&~7); *} * *return 25; */ case 33: /* ClientMessage */ if ((((XClientMessageEvent*)&last_event)->message_type==atom_PROTOCOLS) && (((XClientMessageEvent *)&last_event)->data.l[0] == atom_DELWIN)) { /* it's a WM_DELETE_WINDOW event */ return 63; } return 33; case 3: if(XPending(dpy)) { /* If the next event is a KeyPressed, than we have a repeat */ XPeekEvent(dpy, &peek); if(peek.type == 2 && peek.xkey.keycode == last_event.xkey.keycode && peek.xkey.time == last_event.xkey.time) { XNextEvent(dpy, &peek); return 2; } return 3; } default: if (last_event.type >= LASTEvent) { return 110; /* Extension */ } else { return last_event.type; } } } else return -1; #endif } #ifndef WIN32 /* X help function */ struct color_dist{ int index; /* color index in colormap */ int distance; /* distance from searched color */ }; static int color_cmp(const void* a, const void* b) { return (((struct color_dist *)a)->distance - ((struct color_dist *)b)->distance); } #define nb_col 256 /* visual dependant ? */ static void * search_X_color(int *r, int *g, int *b) { static XColor * c_map = NULL; static struct color_dist * distances = NULL; XColor *xcol; int status; int i; int x, y, z; int rmean; if (!c_map) c_map = malloc(nb_col*sizeof(XColor)); if (!distances) distances = malloc(nb_col*sizeof(struct color_dist)); for (i=0; i>5; x=(*r - c_map[i].red)>>4; y=(*g - c_map[i].green)>>4; z=(*b - c_map[i].blue)>>4; distances[i].distance=(((((8192+rmean)*x)>>10)*x)>>2) + 4*y*y + (((((12287-rmean)*z)>>10)*z)>>2); } qsort(distances, nb_col, sizeof(struct color_dist), color_cmp); /* printf("searched : %d %d %d, found : %d %d %d\n",*r >> 8, *g >> 8, *b >> 8, c_map[distances->index].red >> 8, c_map[distances->index].green >> 8, c_map[distances->index].blue >> 8); */ for (status=0, i=0; (status==0) && (ired; *g = xcol->green; *b = xcol->blue; return (void*)xcol->pixel; } static int search_X_color2(int *r, int *g, int *b) { static XcmsColor * c_map = NULL; static XColor * rgb_c_map = NULL; static struct color_dist * distances = NULL; XcmsColor search; XColor xcol; int status; int i; if (!distances) distances = malloc(nb_col*sizeof(struct color_dist)); if (!c_map) { c_map = malloc(nb_col*sizeof(XcmsColor)); for (i=0; i180) d = 360.0 - d; if (d<0) exit(0); d = d * abs(search.spec.TekHVC.C)/10; d += abs(search.spec.TekHVC.C - c_map[i].spec.TekHVC.C); d += abs(search.spec.TekHVC.V - c_map[i].spec.TekHVC.V); distances[i].distance = (int)d; } qsort(distances, nb_col, sizeof(struct color_dist), color_cmp); for (status=0, i=0; (status==0) && (i>8) + 25)/51))*51)<<8; xcol.green = (((int)(((*g>>8) + 25)/51))*51)<<8; xcol.blue = (((int)(((*b>>8) + 25)/51))*51)<<8; status = XAllocColor(dpy,DefaultColormap(dpy,DefaultScreen(dpy)),&xcol); if (status) return (void*)(xcol.pixel); else return search_X_color(r, g, b); } } #endif void *basic_vision_get_color(int *r, int *g, int *b) { #ifdef WIN32 return (void*)RGB((*r>>8), (*g>>8), (*b>>8)); #else if (red_mask) return (void*)(long)((((red_shift>0)?(*r)<>-red_shift)&red_mask) | (((green_shift>0)?(*g)<>-green_shift)&green_mask) | (((blue_shift>0)?(*b)<>-blue_shift)&blue_mask)); else return get_color_from_server(r, g, b); #endif } /* XGrabPointer(dpy, win, 0, ButtonPressMask|ButtonReleaseMask|EnterWindowMask|LeaveWindowMask| PointerMotionMask|Button1MotionMask|Button2MotionMask|Button3MotionMask|Button4MotionMask|Button5MotionMask|ButtonMotionMask, GrabModeAsync, GrabModeAsync, None , None, 0) */ int vision_available(void) { #ifdef WIN32 return 1; #else return getenv("DISPLAY") != NULL; #endif } /* -- ------------------------------------------------------------------------------------------------------------ -- Copyright notice below. Please read. -- -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE -- Copyright(C) 2003-2005: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE -- -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -- documentation files (the "Software"), to deal in the Software without restriction, including without -- limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -- the Software, and to permit persons to whom the Software is furnished to do so, subject to the following -- conditions: -- -- The above copyright notice and this permission notice shall be included in all copies or substantial -- portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -- EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -- OR OTHER DEALINGS IN THE SOFTWARE. -- -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr -- ------------------------------------------------------------------------------------------------------------ */ #if defined __USE_POSIX || defined __unix__ || defined _POSIX_C_SOURCE /* macro read is used of read_stdin */ void io_copy (char*source, char*target) { /* We use the low-level descriptor functions rather than stream-oriented functions. * This allows us to copy the file's permissions. */ int src; int tgt; struct stat info; static char *buffer = NULL; static int bufsize = 0; int read_count, write_count, written; src=open (source, O_RDONLY); if (fstat (src, &info)) return; /* Ooops */ if (bufsize < info.st_blksize) buffer=se_realloc (buffer, info.st_blksize); tgt=creat (target, info.st_mode); do { read_count = read (src, buffer, info.st_blksize); write_count = 0; written = 0; while ((write_count < read_count) && (written >= 0)) { written = write (tgt, buffer + write_count, read_count - write_count); write_count += written; } } while ((read_count > 0) && (written >= 0)); close (src); close (tgt); } int io_same_physical_file(char*path1,char*path2) { struct stat info1, info2; if (stat(path1, &info1)) return 0; /* oops */ if (stat(path2, &info2)) return 0; /* oops */ return (info1.st_dev == info2.st_dev) && (info1.st_ino == info2.st_ino); } #else #define IO_COPY_BUFSIZE 4096 int read_stdin(EIF_CHARACTER *buffer, int size) { int c; c = getc(stdin); if (c==EOF) return 0; *buffer = (EIF_CHARACTER)c; return 1; } void io_copy(char*source, char*target) { static char *buffer = NULL; int read_count; FILE*src=fopen(source, "rb"); FILE*tgt=fopen(target, "wb"); if(!buffer) buffer = (char*)se_malloc(IO_COPY_BUFSIZE); while ((read_count = fread(buffer, 1, IO_COPY_BUFSIZE, src)), read_count) { size_t dummy = fwrite(buffer, 1, read_count, tgt); } fclose(src); fclose(tgt); } int io_same_physical_file(char*path1,char*path2) { /* default implementation returns true only if the paths are the same */ return !strcmp(path1, path2); } #endif int io_file_exists(char*source) { FILE*src=fopen(source, "rb"); if (src!=NULL) { fclose(src); return 1; } else { return (errno != ENOENT); } } /* -- ------------------------------------------------------------------------------------------------------------ -- Copyright notice below. Please read. -- -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE -- Copyright(C) 2003-2005: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE -- -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -- documentation files (the "Software"), to deal in the Software without restriction, including without -- limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -- the Software, and to permit persons to whom the Software is furnished to do so, subject to the following -- conditions: -- -- The above copyright notice and this permission notice shall be included in all copies or substantial -- portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -- EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -- OR OTHER DEALINGS IN THE SOFTWARE. -- -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr -- ------------------------------------------------------------------------------------------------------------ */ EIF_REAL_64 time_difftime(time_t t2, time_t t1) { return difftime((time_t)t2, (time_t)t1); } EIF_INTEGER time_getyear(time_t t, EIF_INTEGER m) { if (m == 1) { return (gmtime((time_t *)(&t)))->tm_year + 1900; } else { return (localtime((time_t *)(&t)))->tm_year + 1900; } } EIF_INTEGER time_getmonth(time_t t, EIF_INTEGER m) { if (m == 1) { return (gmtime((time_t *)(&t)))->tm_mon + 1; } else { return (localtime((time_t *)(&t)))->tm_mon + 1; } } EIF_INTEGER time_getday(time_t t, EIF_INTEGER m) { if (m == 1) { return (gmtime((time_t *)(&t)))->tm_mday; } else { return (localtime((time_t *)(&t)))->tm_mday; } } EIF_INTEGER time_gethour(time_t t, EIF_INTEGER m) { if (m == 1) { return (gmtime((time_t *)(&t)))->tm_hour; } else { return (localtime((time_t *)(&t)))->tm_hour; } } EIF_INTEGER time_getminute(time_t t, EIF_INTEGER m) { if (m == 1) { return (gmtime((time_t *)(&t)))->tm_min; } else { return (localtime((time_t *)(&t)))->tm_min; } } EIF_INTEGER time_getsecond(time_t t, EIF_INTEGER m) { if (m == 1) { return (gmtime((time_t *)(&t)))->tm_sec; } else { return (localtime((time_t *)(&t)))->tm_sec; } } EIF_INTEGER time_getwday(time_t t, EIF_INTEGER m) { if (m == 1) { return (gmtime((time_t *)(&t)))->tm_wday; } else { return (localtime((time_t *)(&t)))->tm_wday; } } EIF_INTEGER time_getyday(time_t t, EIF_INTEGER m) { if (m == 1) { return (gmtime((time_t *)(&t)))->tm_yday; } else { return (localtime((time_t *)(&t)))->tm_yday; } } EIF_BOOLEAN time_is_summer_time_used(time_t t) { return (EIF_BOOLEAN)(((localtime((time_t *)(&t)))->tm_isdst) != 0); } EIF_INTEGER_64 time_mktime(EIF_INTEGER year, EIF_INTEGER mon, EIF_INTEGER mday, EIF_INTEGER hour, EIF_INTEGER min, EIF_INTEGER sec) { struct tm tm_buf; tm_buf.tm_year = (year - 1900); tm_buf.tm_mon = (mon - 1); tm_buf.tm_mday = mday; tm_buf.tm_hour = hour; tm_buf.tm_min = min; tm_buf.tm_sec = sec; tm_buf.tm_isdst = -1; return (EIF_INTEGER_64)mktime(&tm_buf); } void time_add_second(EIF_INTEGER_64 *t, EIF_INTEGER s) { *t += s; } /* -- ------------------------------------------------------------------------------------------------------------ -- Copyright notice below. Please read. -- -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE -- Copyright(C) 2003-2005: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE -- -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -- documentation files (the "Software"), to deal in the Software without restriction, including without -- limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -- the Software, and to permit persons to whom the Software is furnished to do so, subject to the following -- conditions: -- -- The above copyright notice and this permission notice shall be included in all copies or substantial -- portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -- EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -- OR OTHER DEALINGS IN THE SOFTWARE. -- -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr -- ------------------------------------------------------------------------------------------------------------ */ void sprintf_real_64(EIF_CHARACTER* b, EIF_CHARACTER m, int32_t f, real64_t r) { char fmt[32]; fmt[0]='%'; fmt[1]='.'; sprintf(fmt+2, "%d%c", f, m); sprintf((char*)b, fmt, r); } void sprintf_real_extended(EIF_CHARACTER* b, EIF_CHARACTER m, int32_t f, real_extended_t r) { char fmt[32]; fmt[0]='%'; fmt[1]='.'; sprintf(fmt+2, "%dL%c", f, m); sprintf((char*)b, fmt, r); } int x_query_extension(char * extension_name) { int major_opcode, first_event_code, first_error_code; return XQueryExtension(dpy, extension_name, &major_opcode, &first_event_code, &first_error_code); } /* -- ------------------------------------------------------------------------------------------------------------ -- Copyright notice below. Please read. -- -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE -- Copyright(C) 2003-2005: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE -- -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -- documentation files (the "Software"), to deal in the Software without restriction, including without -- limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -- the Software, and to permit persons to whom the Software is furnished to do so, subject to the following -- conditions: -- -- The above copyright notice and this permission notice shall be included in all copies or substantial -- portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -- EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -- OR OTHER DEALINGS IN THE SOFTWARE. -- -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr -- ------------------------------------------------------------------------------------------------------------ */ #ifdef WIN32 int win32_msg=0; int win32_msg_ready=FALSE; HANDLE sem_msg_ready; #endif EIF_POINTER _sequencer_create_set(void) { void * mem; mem = malloc(sizeof(fd_set)); if (!mem) { fprintf(stderr, "Error in malloc for select, exiting\n"); exit(1); } return mem; } int sequencer_wait(int n, fd_set *read_set, int read_size, fd_set *write_set, int write_size, fd_set *exception_set, int exception_size, int s, int us){ struct timeval tv; int ret=0; tv.tv_sec = s; tv.tv_usec = us; #ifndef WIN32 if (select(n, read_set, write_set, exception_set, &tv) == -1) ret = -1; #else if (win32_msg == 0) { if (n==0) Sleep(s*1000+us/1000); else { if (select(n, (read_size?read_set:NULL), (write_size?write_set:NULL), (exception_size?exception_set:NULL), &tv) == -1) ret = -1; } } else { if (WaitForSingleObject(sem_msg_ready, 0) == WAIT_OBJECT_0) { ReleaseSemaphore(sem_msg_ready, 1, NULL); win32_msg_ready = TRUE; } else { if ((s != 0) || (us != 0)) { HANDLE pHandles[MAXIMUM_WAIT_OBJECTS]; int nCount = 0; int to; int i; if (s>2) { /* Never wait more than 2 seconds in case race condition occured */ to = 2000; } else { to = 1000*s + us/1000; } pHandles[nCount++] = sem_msg_ready; for (i = read_set->fd_count-1; i >= 0; i--) pHandles[nCount++] = (HANDLE)read_set->fd_array[i]; for (i = write_set->fd_count-1; i >= 0; i--) pHandles[nCount++] = (HANDLE)write_set->fd_array[i]; ret = WaitForMultipleObjects(nCount, pHandles, FALSE, to); if (ret == WAIT_OBJECT_0) { ReleaseSemaphore(sem_msg_ready, 1, NULL); win32_msg_ready = TRUE; } if (ret != WAIT_TIMEOUT) { ret -= WAIT_OBJECT_0; if (ret < 0 || ret >= nCount) { fprintf(stderr, "Error in WaitForMultipleObjects\n"); ret = -1; } } } if (n) { struct timeval nowait={0,0}; /* use read_size-1 because win32_msg was counted as read fd */ if (select(n, ((read_size-1)?read_set:NULL), (write_size?write_set:NULL), (exception_size?exception_set:NULL),&nowait) == -1) ret = -1; } } } #endif return ret; } struct _channel { Channel next; HANDLE fd; void *data; int tobedeleted; ChannelHandleDelete handle_delete; ChannelHandleRead handle_read; }; void * eiffel_ivy_object; void * eiffel_up_fct; void * eiffel_down_fct; void * eiffel_callback_fct; void IvyChannelInit(void) { /* Do not exit when others core-dump */ signal (SIGPIPE, SIG_IGN); } Channel IvyChannelAdd (HANDLE fd, void *data, ChannelHandleDelete handle_delete, ChannelHandleRead handle_read, ChannelHandleRead handle_write ) { return ((void * (*)(void*, int, void*, void*, void*, void*))eiffel_up_fct)(eiffel_ivy_object, fd, data, handle_delete, handle_read, handle_write); } void IvyChannelRemove (Channel channel) { ((void (*)(void*, void*))eiffel_down_fct)(eiffel_ivy_object, channel); } void plugin_read_callback(IvyClientPtr app, void *user_data, int argc, char **argv ) { ((void (*)(void*, void*, int, char**))eiffel_callback_fct)(eiffel_ivy_object, user_data, argc, argv); } void ivy_init(char * application_name, char * ready_text, void * eiffel_object, void * channel_up_callback, void * channel_down_callback, void * agent_call_callback) { eiffel_ivy_object = eiffel_object; eiffel_up_fct = channel_up_callback; eiffel_down_fct = channel_down_callback; eiffel_callback_fct = agent_call_callback; IvyInit(application_name, ready_text, NULL, NULL, NULL, NULL); } void * bind_message(char * pattern, void * agent) { return IvyBindMsg(plugin_read_callback, agent, "%s", pattern); } void IvyChannelStop (void) { } /* -- ------------------------------------------------------------------------------------------------------------ -- Copyright notice below. Please read. -- -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE -- Copyright(C) 2003-2005: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE -- -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -- documentation files (the "Software"), to deal in the Software without restriction, including without -- limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -- the Software, and to permit persons to whom the Software is furnished to do so, subject to the following -- conditions: -- -- The above copyright notice and this permission notice shall be included in all copies or substantial -- portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -- EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -- OR OTHER DEALINGS IN THE SOFTWARE. -- -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr -- ------------------------------------------------------------------------------------------------------------ */ EIF_INTEGER basic_microsecond_microsecond = 0; EIF_INTEGER_64 basic_microsecond_time = 0; void _basic_microsecond_update(void) { #ifndef WIN32 struct timeval t; gettimeofday (&t, NULL); basic_microsecond_time = t.tv_sec; basic_microsecond_microsecond = t.tv_usec; #else static DWORD ref_uptime = -1; /* max value as ref_uptime is unsigned */ static time_t ref_time; DWORD uptime; /* uptime = timeGetTime();*/ uptime = GetTickCount(); if (uptime < ref_uptime) { /* !!! this test manages first call AND 50th day ;-) */ ref_uptime = uptime; time(&ref_time); } basic_microsecond_time = ref_time + (uptime - ref_uptime)/1000; basic_microsecond_microsecond = ((uptime - ref_uptime) % 1000) * 1000; #endif } /* -- ------------------------------------------------------------------------------------------------------------ -- Copyright notice below. Please read. -- -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE -- Copyright(C) 2003-2005: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE -- -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -- documentation files (the "Software"), to deal in the Software without restriction, including without -- limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -- the Software, and to permit persons to whom the Software is furnished to do so, subject to the following -- conditions: -- -- The above copyright notice and this permission notice shall be included in all copies or substantial -- portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -- EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -- OR OTHER DEALINGS IN THE SOFTWARE. -- -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr -- ------------------------------------------------------------------------------------------------------------ */ #ifdef WIN32 const char *WINNAME="Window app"; /* --TODO: use exe name */ #endif #ifdef WIN32 static HWND new_window_handle; static int new_window_x, new_window_y, new_window_width, new_window_height; static int new_window_decorate; static void * new_window_parent; void new_window(void) { /* --TODO: replace CLASSNAME with ATOM registred with GlobalAddAtom, see RegisterClass too */ /* --TODO: add WS_CLIPCHILDREN ? WS_CLIPSIBLINGS ? */ window_description *desc; if (new_window_parent) new_window_handle = CreateWindow(CLASSNAME, WINNAME, WS_CHILD, new_window_x, new_window_y, new_window_width, new_window_height, (HWND)new_window_parent, NULL, main_hInstance, NULL); else if (new_window_decorate) new_window_handle = CreateWindow(CLASSNAME, WINNAME, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, new_window_width + decorated_window_width_offset, new_window_height + decorated_window_height_offset, NULL, NULL, main_hInstance, NULL); else { LONG style; new_window_handle = CreateWindowEx(WS_EX_TOOLWINDOW, CLASSNAME, WINNAME, WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, new_window_x, new_window_y, new_window_width, new_window_height, NULL, NULL, main_hInstance, NULL); style = GetWindowLong (new_window_handle, GWL_STYLE); /*style &= (WS_OVERLAPPED|WS_POPUP|WS_CHILD|WS_MINIMIZE|WS_VISIBLE|WS_DISABLED |WS_CLIPSIBLINGS|WS_CLIPCHILDREN|WS_MAXIMIZE|WS_CAPTION|WS_BORDER |WS_SYSMENU); SetWindowLong (new_window_handle, GWL_STYLE, style); SetWindowPos (new_window_handle, HWND_TOPMOST , 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);*/ } /* new_window_handle = CreateWindow(CLASSNAME, WINNAME, WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, CW_USEDEFAULT, CW_USEDEFAULT, new_window_width, new_window_height, NULL, NULL, main_hInstance, NULL); */ vision_check(new_window_handle); if (!new_window_handle) display_error(GetLastError()); desc = malloc(sizeof(window_description)); desc->Current = new_window_handle; desc->background = CreateSolidBrush(RGB(255, 255, 255)); vision_check(desc->background); desc->decorated = new_window_decorate; desc->parent = (new_window_parent?(window_description*)GetWindowLong((HWND)new_window_parent, GWL_USERDATA):&screen_desc); desc->marked = 0; SetWindowLong(new_window_handle, GWL_USERDATA, (long int)desc); /* signal work done */ vision_check_call(ReleaseSemaphore(sem_thread_finished_work, 1, NULL)); } void move_window(HWND window, int x, int y, int w, int h, BOOL b) { first_free_cmd->cmd_type = MOVE_WINDOW; first_free_cmd->param1 = (int)window; first_free_cmd->param2 = x; first_free_cmd->param3 = y; first_free_cmd->param4 = w; first_free_cmd->param5 = h; first_free_cmd->param6 = b; if (first_free_cmd->next == first_cmd) { struct cmd_list *new_cell = malloc(sizeof(struct cmd_list)); new_cell->next = first_free_cmd->next; first_free_cmd->next = new_cell; first_free_cmd = new_cell; /* don't merge with previous line, * first_free_cmd is the last change done and * then the consumer may use this cell */ } else { first_free_cmd = first_free_cmd->next; } vision_check_call(ReleaseSemaphore(sem_cmd_ready, 1, NULL)); } #endif void * basic_window_create(int x, int y, int width, int height, void * parent, int decorate) { #ifdef WIN32 new_window_x = x; new_window_y = y; new_window_width = width; new_window_height = height; new_window_parent = parent; new_window_decorate = decorate; vision_check_call(ReleaseSemaphore(sem_new_window, 1, NULL)); /* Wait for "ready" message from the thread */ vision_check_call(WaitForSingleObject(sem_thread_finished_work, INFINITE) == WAIT_OBJECT_0); return (void *)new_window_handle; #else Window win; /* Window ID */ unsigned long fg, bg, bd; /* Pixel values */ unsigned long bw; /* Border width */ XSizeHints xsh; /* Size hints for window manager */ /*XSetWindowAttributes attr;*/ /* * Select colors for the border, the window background, and the * foreground. */ bd = WhitePixel(dpy, DefaultScreen(dpy)); bg = BlackPixel(dpy, DefaultScreen(dpy)); fg = WhitePixel(dpy, DefaultScreen(dpy)); /* * Set the border width of the window, and the gap between the text * and the edge of the window, "pad". */ bw = 0; /* * Deal with providing the window with an initial position & size. * Fill out the XSizeHints struct to inform the window manager. See * Sections 9.1.6 & 10.3. */ xsh.flags = (PPosition | PSize); xsh.height = height; xsh.width = width; xsh.x = x; xsh.y = y; /*(DisplayHeight(dpy, DefaultScreen(dpy)) - xsh.height) / 2;*/ /* * Create the Window with the information in the XSizeHints, the * border width, and the border & background pixels. See Section 3.3. */ /* DIALOG: XSetTransientForHint (xdisplay, xid, xparent); */ win = XCreateSimpleWindow(dpy, parent?(Window)parent:DefaultRootWindow(dpy), xsh.x, xsh.y, xsh.width, xsh.height, bw, bd, bg); if (!decorate) { XSetWindowAttributes xattributes; long xattributes_mask; xattributes.save_under = True; xattributes.override_redirect = True; xattributes.cursor = None; xattributes_mask = CWCursor | CWSaveUnder | CWOverrideRedirect; XChangeWindowAttributes(dpy, win, xattributes_mask, &xattributes); } /* * { * Atom mwmhints; * MwmHints hints; * * mwmhints = XInternAtom(dpy, _XA_MWM_HINTS, False); * hints.decorations = 0; * hints.flags = MWM_HINTS_DECORATIONS; * XChangeProperty(dpy, win, mwmhints, mwmhints, 32, * PropModeReplace, (unsigned char *)&hints, 4); * } */ /* attr.background_pixel = bg; attr.border_pixel = bd; attr.backing_store = NotUseful; attr.save_under = 0; win = XCreateWindow(dpy, parent?(Window)parent:DefaultRootWindow(dpy), xsh.x, xsh.y, xsh.width, xsh.height, bw, CopyFromParent, CopyFromParent, CopyFromParent,CWBackPixel | CWBorderPixel | CWBackingStore | CWSaveUnder, &attr); */ /*printf("Fenetre parente : %d, nouvelle fenetre : %d\n",parent,win);*/ /* * Set the standard properties for the window managers. See Section * 9.1. */ /*XSetStandardProperties(dpy, win, STRING, STRING, None, argv, argc, &xsh); *XSetWMHints(dpy, win, &xwmh); */ /* * Ensure that the window's colormap field points to the default * colormap, so that the window manager knows the correct colormap to * use for the window. See Section 3.2.9. Also, set the window's Bit * Gravity to reduce Expose events. */ /* xswa.colormap = DefaultColormap(dpy, DefaultScreen(dpy)); * xswa.bit_gravity = CenterGravity; * XChangeWindowAttributes(dpy, win, (CWColormap | CWBitGravity), &xswa); */ /* * Create the GC for writing the text. See Section 5.3. */ /* gcv.font = fontstruct->fid; * gcv.foreground = fg; * gcv.background = bg; * gc = XCreateGC(dpy, win, (GCFont | GCForeground | GCBackground), &gcv); */ /* * Specify the event types we're interested in. See * Sections 8.5 & 8.4.5.1 */ XSelectInput(dpy, win, KeyPressMask|KeyReleaseMask | ButtonPressMask|ButtonReleaseMask| EnterWindowMask|LeaveWindowMask| PointerMotionMask| Button1MotionMask|Button2MotionMask|Button3MotionMask| Button4MotionMask|Button5MotionMask|ButtonMotionMask| KeymapStateMask|ExposureMask|VisibilityChangeMask| StructureNotifyMask| /*ResizeRedirectMask|*/ /*SubstructureNotifyMask|*/ /*SubstructureRedirectMask|*/ FocusChangeMask|PropertyChangeMask|ColormapChangeMask /*|OwnerGrabButtonMask*/ ); /*ExposureMask | KeyPressMask | ButtonPressMask * | EnterWindowMask | LeaveWindowMask | PointerMotionMask * | KeyPressMask ); */ if (!parent) { if (!atom_DELWIN) atom_DELWIN = XInternAtom (dpy, "WM_DELETE_WINDOW", False); /* the following fakes 'XSetWMProtocols(dpy, win, &atom_DELWIN,1);' */ if (!atom_PROTOCOLS) atom_PROTOCOLS = XInternAtom (dpy, "WM_PROTOCOLS", False); if (atom_PROTOCOLS) XChangeProperty(dpy, win, atom_PROTOCOLS, XA_ATOM, 32, PropModeReplace, (unsigned char *) &atom_DELWIN, 1); } return (void *)win; #endif } extern void * basic_window_get_drawing_widget(void *window){ #ifdef WIN32 /* --TODO: change into macro */ return hdc; #else return window; #endif } char* basic_window_get_title(void *window){ #ifdef WIN32 char *result=NULL; int size = GetWindowTextLength((HWND)window); if (size++) { result = malloc(size); GetWindowText((HWND)window, result, size); } return result; #else char *title; if (!XFetchName(dpy,(Window)window,&title)) return NULL; else return title; #endif } void basic_window_free_title(void *title){ #ifdef WIN32 free(title); #else XFree(title); #endif } void basic_window_set_title(void *window, void *title){ #ifdef WIN32 first_free_cmd->cmd_type = SET_TITLE; first_free_cmd->param1 = (int)window; first_free_cmd->param2 = (int)title; if (first_free_cmd->next == first_cmd) { struct cmd_list *new_cell = malloc(sizeof(struct cmd_list)); new_cell->next = first_free_cmd->next; first_free_cmd->next = new_cell; first_free_cmd = new_cell; /* don't merge with previous line, * first_free_cmd is the last change done and * then the consumer may use this cell */ } else { first_free_cmd = first_free_cmd->next; } vision_check_call(ReleaseSemaphore(sem_cmd_ready, 1, NULL)); #else XStoreName(dpy,(Window)window,(char *)title); #endif } void basic_window_set_bg_color(void *window, void *color){ #ifdef WIN32 /* --TODO: handle pixmap background */ window_description *desc = (window_description*)GetWindowLong((HWND)window, GWL_USERDATA); DeleteObject (desc->background); desc->background = CreateSolidBrush((COLORREF)color); vision_check(desc->background); #else XSetWindowBackground(dpy,(Window)window,(unsigned long)color); #endif } void basic_window_set_bg_pixmap(void *window, void *pixmap){ #ifdef WIN32 /* --TODO: review this function for window 95 pixmap limited to 8x8. */ window_description *desc = (window_description*)GetWindowLong((HWND)window, GWL_USERDATA); DeleteObject (desc->background); desc->background = CreatePatternBrush((HBITMAP)pixmap); vision_check(desc->background); #if 0 use part of this code in basic_vision for background painting RECT rect; HBRUSH hbr; HDC hdc_bg; HBITMAP oldbitmap; GetClipBox (hdc, &rect); /* if (version windows != 95 || (pixmap->width <= 8 && pixmap->height <= 8)) */ { /* use brush only with small pixmap with Windows 95 (other version support any size).*/ hbr = CreatePatternBrush (pixmap); FillRect (hdc, &rect, hbr); DeleteObject (hbr); } /* else*/ { /* use BitBlt */ int i, j; hdc_bg = CreateCompatibleDC (hdc); oldbitmap = SelectObject (hdc_bg, pixmap); i = 0; /* while (i < rect.right) { j = 0; while (j < rect.bottom) { if (i+pixmap->width >= rect.left && j+pixmap->height >= rect.top) { BitBlt (hdc, i, j, pixmap->width, pixmap->height, bgdc, 0, 0, SRCCOPY); } j += pixmap->height; } i += pixmap->width; } */ SelectObject (hdc_bg, oldbitmap); DeleteDC (hdc_bg); } #endif #else XSetWindowBackgroundPixmap(dpy,(Window)window,(Pixmap) pixmap); #endif } void basic_window_clear_no_expose(void *window) { /* clear window (restore background) without expose event */ #ifdef WIN32 HDC hdc = GetDC((HWND)window); window_description *desc = (window_description*)GetWindowLong((HWND)window, GWL_USERDATA); RECT area; vision_check_call(GetClientRect((HWND)window, &area)); /* --TODO: handle pixmap case */ vision_check_call(FillRect(hdc, &area, desc->background)); vision_check_call(ReleaseDC((HWND)window, hdc)); #else XClearWindow(dpy,(Window)window); #endif } void basic_window_clear_area_no_expose(void *window, int x, int y, int w, int h){ /* clear area (restore background) without expose event */ #ifdef WIN32 HDC hdc = GetDC((HWND)window); window_description *desc = (window_description*)GetWindowLong((HWND)window, GWL_USERDATA); RECT area; area.left = x; area.top = y; area.right = x + w; area.bottom = y + h; /* --TODO: handle pixmap case */ vision_check_call(FillRect(hdc, &area, desc->background)); vision_check_call(ReleaseDC((HWND)window, hdc)); #else XClearArea(dpy,(Window)window, x, y, w, h, False); #endif } void basic_window_clear_area(void *window, int x, int y, int w, int h){ /* clear window (restore background) and emit expose event on this area */ #ifdef WIN32 first_free_cmd->cmd_type = CLEAR_AREA; first_free_cmd->param1 = (int)window; first_free_cmd->param2 = x; first_free_cmd->param3 = y; first_free_cmd->param4 = x + w; first_free_cmd->param5 = y + h; if (first_free_cmd->next == first_cmd) { struct cmd_list *new_cell = malloc(sizeof(struct cmd_list)); new_cell->next = first_free_cmd->next; first_free_cmd->next = new_cell; first_free_cmd = new_cell; /* don't merge with previous line, * first_free_cmd is the last change done and * then the consumer may use this cell */ } else { first_free_cmd = first_free_cmd->next; } vision_check_call(ReleaseSemaphore(sem_cmd_ready, 1, NULL)); #else XClearArea(dpy,(Window)window, x, y, w, h, True); #endif } void basic_window_set_kbd_focus(void *window){ /*--TODO: remove set_kbd_focus? */ #ifdef WIN32 first_free_cmd->cmd_type = SET_FOCUS; first_free_cmd->param1 = (int)window; if (first_free_cmd->next == first_cmd) { struct cmd_list *new_cell = malloc(sizeof(struct cmd_list)); new_cell->next = first_free_cmd->next; first_free_cmd->next = new_cell; first_free_cmd = new_cell; /* don't merge with previous line, * first_free_cmd is the last change done and * then the consumer may use this cell */ } else { first_free_cmd = first_free_cmd->next; } vision_check_call(ReleaseSemaphore(sem_cmd_ready, 1, NULL)); #else #endif } void basic_window_map(void *window) { #ifdef WIN32 first_free_cmd->cmd_type = MAP_WINDOW; first_free_cmd->param1 = (int)window; first_free_cmd->param2 = main_nCmdShow; if (first_free_cmd->next == first_cmd) { struct cmd_list *new_cell = malloc(sizeof(struct cmd_list)); new_cell->next = first_free_cmd->next; first_free_cmd->next = new_cell; first_free_cmd = new_cell; /* don't merge with previous line, * first_free_cmd is the last change done and * then the consumer may use this cell */ } else { first_free_cmd = first_free_cmd->next; } vision_check_call(ReleaseSemaphore(sem_cmd_ready, 1, NULL)); /*UpdateWindow((HWND)window);*/ /* --TODO: really needed ? */ main_nCmdShow = SW_SHOW; #else XMapWindow(dpy,(Window)window); #endif } void basic_window_unmap(void *window) { #ifdef WIN32 first_free_cmd->cmd_type = MAP_WINDOW; first_free_cmd->param1 = (int)window; first_free_cmd->param2 = SW_HIDE; if (first_free_cmd->next == first_cmd) { struct cmd_list *new_cell = malloc(sizeof(struct cmd_list)); new_cell->next = first_free_cmd->next; first_free_cmd->next = new_cell; first_free_cmd = new_cell; /* don't merge with previous line, * first_free_cmd is the last change done and * then the consumer may use this cell */ } else { first_free_cmd = first_free_cmd->next; } vision_check_call(ReleaseSemaphore(sem_cmd_ready, 1, NULL)); #else XUnmapWindow(dpy,(Window)window); #endif } void basic_window_set_geometry(void *window,int x, int y, int w, int h){ #ifdef WIN32 window_description *desc = (window_description*)GetWindowLong((HWND)window, GWL_USERDATA); if (desc->decorated) move_window((HWND)window, x - decorated_window_x_offset, y - decorated_window_y_offset, w + decorated_window_width_offset, h + decorated_window_height_offset, TRUE); else move_window((HWND)window, x, y, w, h, TRUE); #else XMoveResizeWindow(dpy, (Window)window, x, y, w, h); #endif } void basic_window_set_requisition(void *window, int min_w, int min_h, int max_w, int max_h){ #ifdef WIN32 window_description *desc = (window_description*)GetWindowLong((HWND)window, GWL_USERDATA); desc->min_width = min_w + decorated_window_width_offset; desc->max_width = max_w + decorated_window_width_offset; desc->min_height = min_h + decorated_window_height_offset; desc->max_height = max_h + decorated_window_height_offset; #else XSizeHints hints; hints.flags = PMinSize|PMaxSize; hints.min_width = min_w; hints.max_width = max_w; hints.min_height = min_h; hints.max_height = max_h; XSetWMNormalHints(dpy, (Window)window, &hints); #endif } void basic_window_set_position(void *window, int x, int y){ #ifdef WIN32 RECT size; window_description *desc = (window_description*)GetWindowLong((HWND)window, GWL_USERDATA); vision_check_call(GetClientRect((HWND)window, &size)); if (desc->decorated) move_window((HWND)window, x - decorated_window_x_offset, y - decorated_window_y_offset, size.right + decorated_window_width_offset, size.bottom + decorated_window_height_offset, TRUE); else move_window((HWND)window, x, y, size.right, size.bottom, TRUE); #else XMoveWindow(dpy, (Window)window, x, y); #endif } void basic_window_set_size(void *window,int x, int y, int width, int height){ #ifdef WIN32 window_description *desc = (window_description*)GetWindowLong((HWND)window, GWL_USERDATA); if (desc->decorated) move_window((HWND)window, x - decorated_window_x_offset, y - decorated_window_y_offset, width + decorated_window_width_offset, height + decorated_window_height_offset, TRUE); else move_window((HWND)window, x, y, width, height, TRUE); #else XResizeWindow(dpy, (Window)window, width, height); #endif } int se_cmpT205(T205* o1,T205* o2){ int R=0; R = R || ((o1->_time_memory) != (o2->_time_memory)); return R; }/*--*/ int se_cmpT192(T192* o1,T192* o2){ int R=0; R = R || se_cmpT205(&(o1->_time), &(o2->_time)); R = R || ((o1->_microsecond) != (o2->_microsecond)); return R; }/*--*/ T113 M113={113,(void*)0}; T123 M123={123,(void*)0}; T205 M205={0}; T192 M192={{0},0}; T329 M329={329,(void*)0}; T327 M327={(void*)0,(void*)0,(void*)0}; T326 M326={326,(void*)0}; T317 M317={317,(void*)0}; T311 M311={311,(void*)0}; T308 M308={308,(void*)0}; T307 M307={(void*)0,0,(void*)0}; T302 M302={302,(void*)0}; T300 M300={(void*)0,(void*)0,(void*)0}; T298 M298={(void*)0,0,0}; T297 M297={297,(void*)0}; T296 M296={0,0,(void*)0}; T293 M293={293,(void*)0}; T292 M292={(void*)0,(void*)0,(void*)0}; T290 M290={(void*)0,(void*)0,(void*)0}; T289 M289={289,(void*)0}; T288 M288={(void*)0,0,0,0,(void*)0}; T287 M287={287,(void*)0}; T284 M284={(void*)0,(void*)0,(void*)0}; T280 M280={(void*)0,0,0}; T154 M154={0,0,{{0},0},0,0,(void*)0,0,(void*)0,0,(void*)0,0,0}; T279 M279={(void*)0,0,0}; T160 M160={(void*)0}; T277 M277={(void*)0,0,0}; T276 M276={(void*)0,0,0,0,(void*)0}; T275 M275={(void*)0,0,0,0,(void*)0}; T273 M273={(void*)0,0,0}; T271 M271={(void*)0,0,0,0,(void*)0}; T269 M269={(void*)0,0,0,0,(void*)0}; T268 M268={(void*)0,0,0,0,(void*)0}; T146 M146={0,0,0}; T267 M267={(void*)0,0,0}; T149 M149={0}; T266 M266={(void*)0,0,0}; T148 M148={0,0,(void*)0,(void*)0,(void*)0}; T265 M265={(void*)0,0,0}; T263 M263={(void*)0,0,0,0,(void*)0}; T262 M262={(void*)0,0,0}; T261 M261={(void*)0,0,0}; T260 M260={(void*)0,0,0,0,(void*)0}; T259 M259={(void*)0,0,0}; T257 M257={(void*)0,0,0,0}; T256 M256={(void*)0,0,0,0,0}; T253 M253={(void*)0,0,0,0,(void*)0}; T250 M250={(void*)0,0,0,0,(void*)0}; T153 M153={153,(void*)0,(void*)0,0,0,(void*)0,(void*)0,(void*)0,(void*)0}; T249 M249={(void*)0,0,0}; T248 M248={(void*)0,0,0}; T155 M155={(void*)0,(void*)0,(void*)0,(void*)0,0,0}; T73 M73={(void*)0,(void*)0,0,0,0,0,0,0,(void*)0}; T134 M134={134,(void*)0,0}; T133 M133={(void*)0,0,(void*)0,(void*)0}; T131 M131={131,0,0,0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,0,(void*)0}; T53 M53={0,(void*)0,0}; T46 M46=(void*)0; T191 M191={(void*)0}; T247 M247={(void*)0,0,0}; T150 M150=0; T68 M68={0,(void*)0,(void*)0,0,0,0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0}; T43 M43=(void*)0; T70 M70={(void*)0,0,0,0,0,0,0,0,0,0,0,0,0,(void*)0,(void*)0,0,(void*)0,(void*)0,(void*)0,0,0,0,0,0,0,0,0,0,0,0,0,0}; T244 M244={(void*)0,0,0}; T7 M7={(void*)0,0,0}; T71 M71={71,0,0,(void*)0,(void*)0,0,(void*)0,0,(void*)0,(void*)0,(void*)0,(void*)0}; T65 M65={0,0,(void*)0,(void*)0,(void*)0,(void*)0}; T25 M25={(void*)0,(void*)0,(void*)0,(void*)0,0,0,0,(void*)0}; /*Aliased storage area or unicode storage.*/ char*s25_0=""; char*s25_21190322=" Status: "; char*s25_314746909=" status=up time="; char*s70_190991=" type="; char*s70_475="In"; char*s70_112207026=" crop=(.*)"; char*s70_220157120="^CHANGE_CROP device_id="; char*s13_1432888418="Some feature is not yet implemented (i.e. feature `not_yet_implemented\' of\nclass ANY has been called somewhere). Just run this code under the debugger\nto know the `not_yet_implemented\' caller. If this is a feature of the\nSmartEiffel library, you may consider to post your implementation on the\nSmartEiffel mailing list.\n e-mail: SmartEiffel@loria.fr\n Happy debug and thanks in advance.\n http://SmartEiffel.loria.fr\n The SmartEiffel team.\n\nThe error occured in the type "; char*s70_697="up"; char*s70_1961093439="marker_pen_2181"; char*s70_104371129="airbrush_2323"; char*s70_104371267="airbrush_3346"; char*s70_1699147265="classic_pen_eraser_2075"; char*s13_1210=".\n\n"; char*s70_1756148648=" predicted_x="; char*s70_1756148653=" predicted_y="; char*s25_1948078333="slider_event device_id="; char*s25_92383297="-application="; char*s70_1461=" x="; char*s70_1466=" y="; char*s70_23436791=" presure="; char*s25_1666922512="pad_event device_id="; char*s70_56246305="unchanged"; char*s25_1957581="default"; char*s25_1403610646=" side=left time="; char*s70_4725661=" tilt_x="; char*s70_4725666=" tilt_y="; char*s70_4738061=" status="; char*s25_1213754110="XInputExtension is not available."; char*s25_765567725="_event device_id="; char*s25_1387538644="\" is not a valid crop definition (-crop=xmin,ymin,xmax,ymax is expected).\n"; char*s25_1370426634="Detection de l\'option crop : "; char*s70_2179769="pointer"; char*s25_751291742="\" is not a valid y_offset (an integer is needed).\n"; char*s25_1554692325="Missing bus identifier after -b option.\n"; char*s70_2097616536="Recieved CHANGE_CROP message with invalid crop definition: "; char*s25_357338863="\" is not a valid time (a real number is needed).\n"; char*s70_2676="Out"; char*s70_1874520032="stroke_pen_2098"; char*s70_1619665677="classic_pen_2067"; char*s25_1491411490="\" is not a valid x_offset (an integer is needed).\n"; char*s25_4487261=" button="; char*s70_1940108584="grip_pen_2083"; char*s25_694149733=" status=down time="; char*s65_1686724329="Vision is currently written for X and Windows.\n"; char*s70_586741066=" proximity="; char*s25_89639="wacom"; char*s70_15980="down"; char*s70_397440="button"; char*s25_69208946="\" is not a valid pad name.\n"; char*s70_188916=" time="; char*s25_447643634="\" is not a valid pointer name.\n"; char*s70_2057747851="grip_pen_eraser_2091"; char*s25_3479972=" (Type: "; char*s25_1126339109="This tool get data from wacom pen screen and is\n able to send them to applications using ivy bus.\n\nOptions:\n -help: print this help.\n\n -list_devices: all available devices are listed.\n\n -pad=name: report pad data from the pad device with this name.\n\n -wacom_pointer=name: report pointer data from the pointer device with\n this name. Ex: stylus.\n\n -bus=[address]:port: specify the ivy bus (default is :3110).\n\n -b [address]:port: specify the ivy bus (default is :3110) (added for\n compatibility with other ivy tools).\n\n -application=name: specify the application name on the ivy bus\n (default is wacom).\n\n -identifier=id: this identifier will be used in ivy messages\n device_id value (default is \"default\").\n\n -x_offset=n: specify the x-offset for the wacom device\n for the display configuration (default is 0).\n\n -y_offset=n: " " specify the y-offset for the wacom device\n for the display configuration (default is 0).\n\n\011""-crop=xmin,ymin,xmax,ymax: outside this area, move events are not reported\n\011"" (values are integers in device coordinates). Hires values\n\011""\011""\011""\011""\011""\011""\011""\011""are mapped to [0,1] inside this window and over when outside.\n\n -prediction=t: change the prediction time for the physical position.\n (default is 25ms).\n\n -ignore=n: number of messages to ignore before sending a new\n position message (this reduces message frequency).\n (default is 0 => \176""120message/s).\n\011""\nOptions are considered in the order they appear in the command line. A new\nvalue overrides the previous one. \"wacom_pointer\" and \"pad\" are created where they\nappear, with known information.\n\nMessages:\n slider_event device_id=radar_wacom value=4 side=left time=4523271\n device_id: identifier (see options).\n " " value: new slider value (0 when the\n\011""\011""\011""\011""\011""\011""\011""\011""\011""\011""finger leaves the slider).\n side: left or right.\n time: event time (ms), X server reference.\n\n pad_event device_id=radar_wacom button=12 status=left time=4523271\n device_id: identifier (see options).\n button: button identifier.\n status: up or down.\n time: event time (ms), X server reference.\n\n button_event device_id=radar_wacom button=2 status=up x=1290 y=325\n presure=307 tilt_x=-20 tilt_y=15 wheel=0 predicted_x=1272 predicted_y=322\n type=123 serial_number=429389 time=4523271 hires_x=0.827 hires_y=0.231\n proximity=unchanged\n pointer_event device_id=radar_wacom x=1290 y=325\n presure=307 tilt_x=-20 tilt_y=15 wheel=0 predicted_x=1272 predicted_y=322\n type=123 serial_number=429389 time=4523271 hires_x=0.827 hires_y=0.231\n proximity=unchanged\n device_id: identifier (see opti" "ons).\n button: button identifier.\n status: up or down.\n x: pointer position (display coordinates).\n y: pointer position (display coordinates).\n presure: presure value ([0, 1023] for intuos 3).\n tilt_x: device tilt in degrees.\n tilt_y: device tilt in degrees.\n wheel: rotation value (device type dependent value).\n predicted_x: predicted position. It is expected to be\n the current position of the real device.\n predicted_y: predicted position. It is expected to be\n the current position of the real device.\n type: the type of the device (pen, eraser, mouse,\n cursor, airbrush...).\n serial_number: the serial number of the device.\n time: event" " time (ms), X server reference.\n hires_x: pointer position (device coordinates, in range [0,1]).\n hires_y: pointer position (device coordinates, in range [0,1]).\n proximity: unchanged, in, out\n\nCrop configuration can be changed dynamically sending a CHANGE_CROP message:\n CHANGE_CROP device_id=radar_wacom crop=52320,14596,86600,38102\n"; char*s25_557679246=" available)"; char*s25_1638797568=" side=right time="; char*s25_1260406502="Unknown option "; char*s70_22702411=" hires_x="; char*s70_22702416=" hires_y="; char*s25_946366=" value="; char*s70_1501987274="airbrush_eraser_2331"; char*s25_382517595="\" is not a valid ignore rate (an integer is needed).\n"; char*s70_952626=" wheel="; char*s70_2112369621=" serial_number="; char*s70_10739017="pen_2049"; char*s70_10739024="pen_2066"; char*s70_10739030="pen_2082"; char*s71_202554="-READY"; char*s150_1472358418="XInputExtension"; char*s25_1959886733=" unavailable)"; char*s70_1257860908="eraser_2090"; /* -- ------------------------------------------------------------------------------------------------------------ -- Copyright notice below. Please read. -- -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE -- Copyright(C) 2003-2005: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE -- -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -- documentation files (the "Software"), to deal in the Software without restriction, including without -- limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -- the Software, and to permit persons to whom the Software is furnished to do so, subject to the following -- conditions: -- -- The above copyright notice and this permission notice shall be included in all copies or substantial -- portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -- EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -- OR OTHER DEALINGS IN THE SOFTWARE. -- -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr -- ------------------------------------------------------------------------------------------------------------ */ void se_print_run_time_stack (void) { handle(SE_HANDLE_ENTER_PRINT_STACK, NULL); fprintf(SE_ERR,"Eiffel program crash at run time.\n"); fprintf(SE_ERR,"No trace when using option \"-boost\"\n"); handle(SE_HANDLE_EXIT_PRINT_STACK, NULL); } void se_signal_handler(int sig) { handle(SE_HANDLE_RUNTIME_ERROR, NULL); printf("Received signal %d.\n",sig); se_print_run_time_stack(); exit(EXIT_FAILURE); } /* -- ------------------------------------------------------------------------------------------------------------ -- Copyright notice below. Please read. -- -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE -- Copyright(C) 2003-2005: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE -- -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -- documentation files (the "Software"), to deal in the Software without restriction, including without -- limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -- the Software, and to permit persons to whom the Software is furnished to do so, subject to the following -- conditions: -- -- The above copyright notice and this permission notice shall be included in all copies or substantial -- portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -- EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -- OR OTHER DEALINGS IN THE SOFTWARE. -- -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr -- ------------------------------------------------------------------------------------------------------------ */ /* This file (SmartEiffel/sys/runtime/gc_lib.c) is automatically included when the Garbage Collector is used (default, unless option -no_gc has been selected). */ /* The `mark_stack_and_registers' C function is called by the Garbage Collector (GC) of SmartEiffel. It has to be customized for some systems, but also for some C compilers. This file provides some definitions in the end and has to be completed for systems which need specific work. On some architectures, addresses increase as the stack grows; or, conversely, addresses decrease as the stack grows. A C compiler may be clever enough to hide some root object inside registers. Unfortunately all registers are not always accessible via the C `setjmp' function! Thus, in order to be able to use the GC on your architecture/C-compiler, you have to provide the correct `mark_stack_and_registers' function. What is the `mark_stack_and_registers' function supposed to do? The `mark_stack_and_registers' function is supposed to notify the GC with all the possible roots one can find in the C stack and registers by calling the `gc_mark' function. A root is an object which must not be collected. The SmartEiffel GC already knows about some root objects like once function results or manifest strings. The `mark_stack_and_registers' function has to notify the other possible roots. Obviously, one can find in the C stack any kind of adresses, but the `gc_mark' function is clever enough to determine if the passed pointer is an Eiffel object or not. When the passed pointer reaches some Eiffel object, this object as well as its descendant(s) are automatically marked as un-collectable. In order to provide the most appropriate `mark_stack_and_registers' function, the very first question is to know about the way the C stack is managed (addresses of the stack may increase or decrease as the C stack grows). The DEFAULT BEHAVIOUR FOR UNKNOWN SYSTEMS is to consider ADDRESSES DECREASE AS THE STACK GROWS, as it's the most common case. The global C variable `stack_bottom' is set with some pointer which is supposed to be the bottom of the stack (this variable is automatically initialized in the C main function). Note: using the current stack pointer inside `mark_stack_and_registers', it is quite obvious to determine if addresses increase or not as the C stack grows. Note2: on some systems, the stack is not in contiguous addresses. In such case, `mark_stack_and_registers' has to go through all the stack fragments. Some roots may be stored only in registers and not in the C stack. In order to reach the registers as well, the first attempt is to use setjmp, in the hope that setjmp will save registers in the stack! Note: this technique do not work on processors using windows registers (such as sparc processors). */ int se_gc_strategy = SE_GC_DEFAULT_MEMORY_STRATEGY; int collector_counter = 0; static void gcna_align_mark(rsoc*c,void*o); static rsoc*rsocfl=NULL; /* ReSizable Object Chunk Free List. */ void**stack_bottom=NULL; mch**gcmt=NULL; /* Garbage Collector Main Table. */ int gcmt_max=2048; int gcmt_used=0; fsoc*fsocfl=NULL; /* Fixed Size Object Chunk Free List. */ int gc_is_off=1; unsigned int fsoc_count=0; unsigned int rsoc_count=0; void*gcmt_tail_addr=NULL; static int chunk_rounded(int size) { int rounded_size = size; int diff = rounded_size%RSOC_SIZE; if (diff != 0) rounded_size += (RSOC_SIZE-diff); return rounded_size; } /* Return the index where chunk `c' is (or is to be) in the `gcmt', between `min' and `max' indexes. */ static unsigned int binary_search_in_gcmt(register unsigned int min, register unsigned int max, register mch* c){ register unsigned int mid; while (min>1; if (gcmt[mid] 50) && (count > (rsoc_count >> 1))) { current=rsocfl; rsocfl=NULL; while (NULL != current) { next=current->next; if (current->isize == current->header.size) { where = binary_search_in_gcmt(0, where-1, (mch*)current); how_many = gcmt_used - 1 - where; if (how_many > 0) memmove(gcmt+where, gcmt+where+1, how_many*sizeof(mch*)); free(current); gcmt_used--; rsoc_count--; } else { current->next=rsocfl; rsocfl=current; } current = next; } } } int gc_memory_used(void) { int i; int result = 0; mch* mch; for (i = gcmt_used; i --> 0; ) { mch = gcmt[i]; switch(mch->state_type) { case RSO_USED_CHUNK: case FSO_USED_CHUNK: case FSO_STORE_CHUNK: result += mch->size; break; default: break; } } return result; } void gc_sweep(void) { mch** p2 = gcmt; mch** p1 = gcmt+1; mch**eogcmt=gcmt+gcmt_used; if (FREE_CHUNK((*p2)->state_type)) { if (RSO_FREE_CHUNK == ((*p2)->state_type)) { ((rsoc*)(*p2))->next=NULL; rsocfl=((rsoc*)(*p2)); } else { rsocfl=NULL; } } else { ((*gcmt)->swfp)(*p2); if (RSO_FREE_CHUNK==((*p2)->state_type)) { ((rsoc*)(*p2))->next=NULL; rsocfl=((rsoc*)(*p2)); } else { rsocfl=NULL; } } while (p1 < eogcmt) { if (FREE_CHUNK((*p1)->state_type)) { if (RSO_FREE_CHUNK == ((*p1)->state_type)) { if (RSO_FREE_CHUNK == ((*p2)->state_type)) { if ( (((rsoc*)*p1)->isize==0) && ((char*)(*p2))+(*p2)->size == ((char*)(*p1))) { ((*p2)->size)+=((*p1)->size); p1++; } else { ((rsoc*)(*p1))->next=rsocfl; rsocfl=((rsoc*)(*p1)); *(p2+1)=*p1; p2++; p1++; } } else { ((rsoc*)(*p1))->next=rsocfl; rsocfl=((rsoc*)(*p1)); *(p2+1)=*p1; p2++; p1++; } } else { *(p2+1)=*p1; p2++; p1++; } } else { ((*p1)->swfp)(*p1); if (RSO_FREE_CHUNK == ((*p1)->state_type)) { if (RSO_FREE_CHUNK == ((*p2)->state_type)) { if ( (((rsoc*)*p1)->isize==0) && ((char*)(*p2))+(*p2)->size == ((char*)(*p1))) { ((*p2)->size)+=((*p1)->size); p1++; } else { ((rsoc*)(*p1))->next=rsocfl; rsocfl=((rsoc*)(*p1)); *(p2+1)=*p1; p2++; p1++; } } else { ((rsoc*)(*p1))->next=rsocfl; rsocfl=((rsoc*)(*p1)); *(p2+1)=*p1; p2++; p1++; } } else { *(p2+1)=*p1; p2++; p1++; } } } gcmt_used=(p2-gcmt)+1; may_free_rsocfl(); } /* return the mch containing p or NULL if p is not * a valid address or was externally allocated */ mch * gc_find_chunk(void * p){ if ((p>((void*)*gcmt))&&(p<=gcmt_tail_addr)) { int i1=0; int i2=gcmt_used-1; int m=i2>>1; mch*c; for (;i2>i1;m=((i1+i2)>>1)) { if (p<=((void*)gcmt[m+1])) { i2=m; } else { i1=m+1; } } c=gcmt[i2]; if((char*)p<(char*)c+c->size) /* check for upper bound */ if (!(FREE_CHUNK(c->state_type))){ return c; } } return NULL; } void gc_mark(void*p) { mch * c; c = gc_find_chunk(p); if(NULL != c) { (c->amfp)(c,p); } } int gc_stack_size(void) { void*stack_top[2]={NULL,NULL}; if (stack_top > stack_bottom) { return ((void**)stack_top)-((void**)stack_bottom); } else { return ((void**)stack_bottom)-((void**)stack_top); } } /* To delay Garbage Collection when the stack is too large. To allow fast increase of ceils. */ #define FSOC_LIMIT (10240/((FSOC_SIZE)>>10)) #define RSOC_LIMIT (10240/((RSOC_SIZE)>>10)) /* When stack is too large, collection may be delayed. */ #define GCLARGESTACK 50000 int garbage_delayed(void) { /* To delay the first GC call. */ if (gc_stack_size() > GCLARGESTACK) { if (fsoc_count_ceil <= fsoc_count) { if (rsoc_count_ceil <= rsoc_count) { if ((fsoc_count */ /* --perf-- if (fsocfl == NULL) { */ if (fsoc_count >= fsoc_count_ceil) { if (fsoc_count_ceil < FSOC_LIMIT) { fsoc_count_ceil <<= 1; } else { unsigned int c = fsoc_count + (fsoc_count/3); if (fsoc_count_ceil < c) fsoc_count_ceil = c; } } /* --perf-- } else { if (fsoc_count_ceil < fsoc_count) { fsoc_count_ceil = fsoc_count; } } */ /* Compute rsoc_count_ceil: */ /* --perf-- if (rsocfl == NULL) {*/ if (rsoc_count >= rsoc_count_ceil) { if (rsoc_count_ceil < RSOC_LIMIT) { rsoc_count_ceil <<= 1; } else { unsigned int c = rsoc_count + (rsoc_count / 3); if (rsoc_count_ceil < c) { rsoc_count_ceil = c; } } } /* --perf -- } else { if (rsoc_count_ceil < rsoc_count) { rsoc_count_ceil = rsoc_count; } } */ } static void gc_add_into_gcmt(mch*c) { /* Update the `gcmt' (Garbage Collector Main Table) by adding the new `mch' (Memory Chunk Header).`gcmt_used' is updated. */ unsigned int where=0; unsigned how_many; if (gcmt_used>0){ where=binary_search_in_gcmt(0, gcmt_used-1, c); if (gcmt_used == gcmt_max) { gcmt_max <<= 1; gcmt = ((mch**)(se_realloc(gcmt,(gcmt_max+1)*sizeof(void*)))); } how_many = gcmt_used - where; if (how_many > 0) memmove(gcmt+where+1, gcmt+where, how_many*sizeof(mch*)); } gcmt[where]=c; gcmt_used++; } static char*rso_from_store(na_env*nae,unsigned int size) { rsoh*r=(nae->store); nae->store_left-=size; if ((nae->store_left) > sizeof(rsoh)) { r->header.size=size; nae->store=((rsoh*)(((char*)(nae->store))+size)); } else { r->header.size=size+nae->store_left; nae->store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return (char*)(r+1); } static void rsoc_sweep(rsoc*c) { na_env*nae=c->nae; rsoh*gp=(rsoh*)&(c->first_header); rsoh*pp; rsoh*eoc=((rsoh*)(((char*)c)+c->header.size)); c->free_list_of_large=NULL; if (c->header.size > RSOC_SIZE) { if (gp->header.magic_flag == RSOH_MARKED) { gp->header.magic_flag=RSOH_UNMARKED; /* No need to register chunks with no free_list_of_large c->next=nae->chunk_list; nae->chunk_list=c; */ } else { c->header.state_type=RSO_FREE_CHUNK; } return; } while (gpheader.magic_flag == RSOH_MARKED) { gp->header.magic_flag=RSOH_UNMARKED; gp=((rsoh*)(((char*)gp)+gp->header.size)); if(gp>=eoc) { /* No need to register chunks with no free_list_of_large c->next=nae->chunk_list; nae->chunk_list=c; */ return; } } gp->header.magic_flag=RSOH_FREE; pp=(rsoh*)(((char*)gp)+gp->header.size); while ((ppheader.magic_flag != RSOH_MARKED)) { gp->header.size+=pp->header.size; pp=((rsoh*)(((char*)pp)+pp->header.size)); } if (gp->header.size >= RSOC_MIN_STORE) { if (nae->store_left==0) { nae->store_left=gp->header.size; nae->store=gp; nae->store_chunk=c; } else if (nae->store->header.size < gp->header.size) { ((fll_rsoh*)nae->store)->nextflol=nae->store_chunk->free_list_of_large; nae->store_chunk->free_list_of_large=((fll_rsoh*)nae->store); nae->store_left=gp->header.size; nae->store=gp; nae->store_chunk=c; } else { ((fll_rsoh*)gp)->nextflol=c->free_list_of_large; c->free_list_of_large=((fll_rsoh*)gp); } } gp=pp; } if (((rsoh*)(&c->first_header))->header.size >= (c->header.size-sizeof(rsoc)+sizeof(rsoh))){ c->header.state_type=RSO_FREE_CHUNK; nae->store_chunk=NULL; nae->store_left=0; } else{ c->next=nae->chunk_list; nae->chunk_list=c; } } /* *** To be removed */ #ifdef __TINYC__ static rsoc MRSOC = { #else static const rsoc MRSOC = { #endif { RSOC_SIZE, RSO_USED_CHUNK, ((void(*)(mch*,void*))gcna_align_mark), ((void(*)(mch*))rsoc_sweep) }, 0, NULL, NULL, NULL, { { 0, RSOH_MARKED } } }; static void rsoc_malloc(na_env*nae) { rsoc* r = ((rsoc*)(se_malloc(RSOC_SIZE))); rsoc_count++; *r=MRSOC; r->nae=nae; r->isize=RSOC_SIZE; nae->store=(&(r->first_header)); nae->store_left=RSOC_SIZE-sizeof(rsoc)+sizeof(rsoh); nae->store_chunk=r; r->next=nae->chunk_list; nae->chunk_list=r; gc_add_into_gcmt((mch*)r); } static rsoc* rsocfl_best_fit(unsigned int size) { register unsigned int best_size = 0; unsigned int acceptable_loss; register rsoc *pc, *best_pc, *best_c, *c; if (NULL==rsocfl) return NULL; pc=NULL; best_pc=NULL; best_c=NULL; c=rsocfl; if (SE_GC_DEFAULT_MEMORY_STRATEGY == se_gc_strategy) acceptable_loss = (size >> 4); else if (SE_GC_LOW_MEMORY_STRATEGY == se_gc_strategy) acceptable_loss = 0; else /* SE_GC_HIGH_MEMORY_STRATEGY == se_gc_strategy */ acceptable_loss = (size >> 2); while ((NULL!=c)&&(NULL==best_c)){ if (c->header.size>=size){ best_c=c; best_pc=pc; best_size=c->header.size; } pc=c; c=c->next; } if (NULL==c){ if (NULL != best_pc) best_pc->next=best_c->next; else if (best_c==rsocfl) rsocfl=best_c->next; return best_c; } if ((best_size - size) > acceptable_loss){ do { if ((c->header.size >= size) && (c->header.size < best_size)) { best_c = c; best_pc = pc; best_size = c->header.size; if ((best_size - size) <= acceptable_loss) break; } pc=c; c=c->next; } while(NULL!=c); } if (NULL==best_pc) { rsocfl = best_c->next; } else { best_pc->next=best_c->next; } return best_c; } static int get_store_in(rsoc*c,unsigned int size) { na_env*nae=c->nae; fll_rsoh*pf=NULL; fll_rsoh*f=c->free_list_of_large; while (f != NULL) { if (f->rsoh_field.size >= size) { nae->store_left=f->rsoh_field.size; nae->store=(rsoh*)f; nae->store_chunk=c; if (pf == NULL) { c->free_list_of_large=f->nextflol; } else { pf->nextflol=f->nextflol; } return 1; } pf = f; f = f->nextflol; } return 0; } char*new_na_from_chunk_list(na_env*nae,unsigned int size) { rsoc*c=nae->chunk_list; unsigned int csize; while (c != NULL) { if (get_store_in(c,size)) { return rso_from_store(nae,size); } c = c->next; } csize=size+(sizeof(rsoc)-sizeof(rsoh)); c=rsocfl_best_fit(csize); if (c != NULL){ if (c->header.size > RSOC_SIZE) { if (c->header.size-csize > RSOC_MIN_STORE*4) { int csize_left=c->header.size-csize; if ((csize_left%sizeof(double))!=0) { csize_left-=(csize_left%sizeof(double)); csize=c->header.size-csize_left; } c->header.size=csize_left; c->next=rsocfl; rsocfl=c; c=(rsoc*)(((char*)c)+csize_left); c->isize=0; /* c split from a larger chunk */ gc_add_into_gcmt((mch*)c); c->header.amfp=(void(*)(mch*,void*))gcna_align_mark; c->header.swfp=(void(*)(mch*))rsoc_sweep; } /* since objects bigger than RSOC_SIZE must be the only object in their chunk, we do not want to have some store left after them. Therefore, we do not set csize to c->header.size in an else block here. */ c->header.size=csize; } else { csize=c->header.size; } c->header.state_type=RSO_USED_CHUNK; c->free_list_of_large=NULL; c->nae=nae; nae->store=(&(c->first_header)); nae->store_left=csize-sizeof(rsoc)+sizeof(rsoh); nae->store_chunk=c; /* No need to register chunks with no free_list_of_large c->next=nae->chunk_list; nae->chunk_list=c; */ return rso_from_store(nae,size); } return NULL; } /* size in bytes, including header size */ char*new_na(na_env*nae,unsigned int size) { if (size == 0) { #ifdef SE_BOOST handle(SE_HANDLE_RUNTIME_ERROR, NULL); se_print_run_time_stack(); exit(EXIT_FAILURE); #else char msg[512]; sprintf(msg, "Bad native array size: %d.\n", size); error0(msg, NULL); #endif } if (nae->store_left>0) { nae->store->header.size=nae->store_left; nae->store->header.magic_flag=RSOH_FREE; if (nae->store_left >= RSOC_MIN_STORE) { ((fll_rsoh*)(nae->store))->nextflol=nae->store_chunk->free_list_of_large; nae->store_chunk->free_list_of_large=((fll_rsoh*)nae->store); } nae->store_left=0; } if ((nae->store_chunk!=NULL)&&(get_store_in(nae->store_chunk,size))) { return rso_from_store(nae,size); } { char*r=new_na_from_chunk_list(nae,size); if (r!=NULL) return r; } if (rsoc_countRSOC_SIZE){ rsoc*c; rsoh*r; unsigned int rounded_size= chunk_rounded(size+sizeof(rsoc)-sizeof(rsoh)); c=((rsoc*)(se_malloc(rounded_size))); r=(&(c->first_header)); rsoc_count++; *c=MRSOC; c->isize = rounded_size; c->header.size=rounded_size; c->nae=nae; /* No need to register chunks with no free_list_of_large c->next=nae->chunk_list; nae->chunk_list=c; */ gc_add_into_gcmt((mch*)c); r->header.size=size; (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,size-sizeof(rsoh))); return (char*)(r+1); } else { rsoc_malloc(nae); return rso_from_store(nae,size); } } gc_start(); if (size<=(nae->store_left)) { return rso_from_store(nae,size); } { char*r=new_na_from_chunk_list(nae,size); if (r!=NULL) { return r; } } if((size+sizeof(rsoc)-sizeof(rsoh))>RSOC_SIZE){ rsoc*c; rsoh*r; unsigned int rounded_size = chunk_rounded(size+sizeof(rsoc)-sizeof(rsoh)); c=((rsoc*)(se_malloc(rounded_size))); r=(&(c->first_header)); rsoc_count++; *c=MRSOC; c->isize = rounded_size; c->header.size=rounded_size; c->nae=nae; /* No need to register chunks with no free_list_of_large c->next=nae->chunk_list; nae->chunk_list=c; */ gc_add_into_gcmt((mch*)c); r->header.size=size; (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,size-sizeof(rsoh))); gc_update_ceils(); return (char*)(r+1); } else { rsoc_malloc(nae); gc_update_ceils(); return rso_from_store(nae,size); } } static void gcna_align_mark(rsoc*c,void*o) { na_env* nae = c->nae; fll_rsoh* f; fll_rsoh* pf; char* b = (char*)&(c->first_header); /* properly aligned ? */ if (((((char*)o)-((char*)c))%sizeof(int)) != 0) { return; } /* already marked ? */ if ((((rsoh*)o)-1)->header.magic_flag != RSOH_UNMARKED) { return; } if (((char*)o) < ((char*)(c+1))) { return; } /* a large chunck ? */ if (c->header.size > RSOC_SIZE) { if (o == (c+1)) { nae->gc_mark((T0*)o); } return; } pf=NULL; f=c->free_list_of_large; while ((f != NULL) && (f < ((fll_rsoh*)o))) { pf=f; f=f->nextflol; } if (pf == NULL) { pf=(fll_rsoh*)b; } while ((((rsoh*)pf)+1) < (rsoh*)o) { pf = ((fll_rsoh*)(((char*)pf)+pf->rsoh_field.size)); } if (o == (((rsoh*)pf)+1)) { nae->gc_mark((T0*)o); } } unsigned int rsocfl_count(void) { /* Returns the number of items in the ReSizable Object Free List. */ register unsigned int r=0; register rsoc*p=rsocfl; while (p!=NULL) { r++; p=p->next; } return r; } unsigned int fsocfl_count(void) { register unsigned int r=0; register fsoc*p=fsocfl; while (p!=NULL) { r++; p=p->next; } return r; } void gc_dispose_before_exit(void) { mch** p = gcmt; mch**eogcmt=gcmt+gcmt_used; while (p < eogcmt) { if (((*p)->state_type == FSO_STORE_CHUNK) || ((*p)->state_type == FSO_USED_CHUNK)) { ((*p)->swfp)(*p); } p++; } } fsoc* gc_fsoc_get1(void) { /* Get a `fsoc' (Fixed Size Object Chunk) from the free fsoc list or allocate a new one (using `se_malloc') only when the ceil is not yet reached. Otherwise, call the `gc_start()' function and return NULL. */ fsoc* result; if (fsocfl != NULL) { result = fsocfl; fsocfl = fsocfl->next; return result; } else if (fsoc_count_ceil > fsoc_count) { result = ((fsoc*)se_malloc(FSOC_SIZE)); fsoc_count++; gc_add_into_gcmt((mch*)result); return result; } else { gc_start(); return NULL; } } fsoc* gc_fsoc_get2(void) { /* Get a `fsoc' (Fixed Size Object Chunk) or force the allocation of a new `fsoc' (using the `se_malloc' function). Update various ceils accordingly. */ fsoc* result; if (fsocfl != NULL) { result = fsocfl; fsocfl=fsocfl->next; return result; } else { result = ((fsoc*)(se_malloc(FSOC_SIZE))); fsoc_count++; gc_update_ceils(); gc_add_into_gcmt((mch*)result); return result; } } #if defined(__sparc__) || defined(sparc) || defined(__sparc) /* For SPARC architecture. As this part contains assembly code (asm), you must not use the flag -ansi of gcc compiler. */ void mark_loop(void) { void** max = stack_bottom; void** stack_pointer; void* stack_top[2]={NULL,NULL}; stack_pointer = stack_top; /* Addresses decrease as the stack grows. */ while (stack_pointer <= max) { gc_mark(*(stack_pointer++)); } } void mark_stack_and_registers(void) { # if defined(__sparcv9) asm(" flushw"); # else asm(" ta 0x3 ! ST_FLUSH_WINDOWS"); # endif mark_loop(); } #elif defined(__ELATE__) || defined(ELATE) /* GNU Eiffel's VP (Virtual Processor) garbage collector for Elate. (c) 2000 Rudi Chiarito Thanks to Andy Stout and Kevin Croombs at Tao Group for their precious help! ChangeLog: - 2000-06-12 Rudi Chiarito * Version 1.0 - 2001-01-01 Joseph Kiniry * Integrated with new SE 0.75b - 2001-08-10 Rudi Chiarito * Inlined and optimised range marking * Added some more comments * Added conditional breakpoint in mark_stack_and_registers - 2002-09-21 Rudi Chiarito * Removed redundant 'ret' */ __inline__ void mark_stack_and_registers(void) { void *pointer_to_gc_mark = &gc_mark; __asm__ __volatile__ ( /* WARNING: funky code ahead! \t and \n are needed to make the final output easier to read while debugging. Hopefully you'll never have to bother with all of this. Registers: p0 pointer to stack block p1 pointer to gc_mark() p2 scratch pointer i0 length of current stack block i1 scratch register */ # ifdef __ELATE_SE_DEBUG_GC "\tqcall sys/cii/breakpt,(-:-)\n" # endif "\tsync\n" /* spill all the registers */ "\tsyncreg\n" /* to the stack */ "\tcpy.p %0,p1\n" /* pointer to gc_mark() */ /* pointer to the current stack block */ "\tcpy.p [gp+PROC_STACK],p0\n" /* point to last location in the block, before the descriptor */ "\tcpy.p p0 + ([(p0 - STK_SIZE) + STK_LENGTH] - STK_SIZE - 4),p2\n" /* mark the contents of the current stack block */ "\twhile p2>=sp\n" "\t\tgos p1,(p2 : -)\n" "\t\tsub.p 4,p2\n" "\tendwhile\n" /* now scan other blocks (if any) */ "\tloop\n" "\t\tcpy.p [p0 - STK_SIZE + STK_LINK],p0\n" /* get next block */ "\t\tbreakif p0=NULL\n" /* point to last location in the block, before the descriptor */ "\t\tcpy.p p0 + ([(p0 - STK_SIZE) + STK_LENGTH] - STK_SIZE - 4),p2\n" /* mark this block */ "\t\twhile p2>=p0\n" "\t\t\tgos p1,(p2 : -)\n" "\t\t\tsub.p 4,p2\n" "\t\tendwhile\n" "\tendloop\n" : /* no output */ : "p" (pointer_to_gc_mark) : "p0", "p1", "p2", "i0" ); } #elif defined(__hppa__) || defined(__hppa) || defined(__hp9000) || \ defined(__hp9000s300) || defined(hp9000s300) || \ defined(__hp9000s700) || defined(hp9000s700) || \ defined(__hp9000s800) || defined(hp9000s800) || defined(hp9000s820) /**************************************************************************** * Generic code for architectures where addresses increase as the stack grows. ****************************************************************************/ void mark_stack_and_registers(void){ void** max = stack_bottom; JMP_BUF registers; /* The jmp_buf buffer is in the C stack. */ void**stack_pointer; /* Used to traverse the stack and registers assuming that `setjmp' will save registers in the C stack. */ (void)SETJMP(registers); /* To fill the C stack with registers. */ stack_pointer = (void**)(void*)(®isters) + ((sizeof(JMP_BUF)/sizeof(void*))-1); /* stack_pointer will traverse the JMP_BUF as well (jmp_buf size is added, otherwise stack_pointer would be below the registers structure). */ # if !defined(SE_BOOST) if (stack_pointer < max) { fprintf(stderr, "Wrong stack direction: your stack decrease as the stack grows (or complex stack management). Please drop an e-mail to SmartEiffel@loria.fr\n"); exit(1); } # endif while (stack_pointer >= max) { gc_mark(*(stack_pointer--)); } } #else /**************************************************************************** * Generic code for architectures where addresses decrease as the stack grows. ****************************************************************************/ void mark_stack_and_registers(void){ void** max = stack_bottom; JMP_BUF registers; /* The jmp_buf buffer is in the C stack. */ void**stack_pointer; /* Used to traverse the stack and registers assuming that `setjmp' will save registers in the C stack. */ (void)SETJMP(registers); /* To fill the C stack with registers. */ stack_pointer = (void**)(void*)(®isters); # if !defined(SE_BOOST) if (stack_pointer > max) { fprintf(stderr, "Wrong stack direction: the stack addresses increase as the stack grows (or complex stack management). Please drop an e-mail to SmartEiffel@loria.fr\n"); exit(1); } # endif while (stack_pointer <= max) { gc_mark(*(stack_pointer++)); } } #endif unsigned int fsoc_count_ceil=320; unsigned int rsoc_count_ceil=87; /*INTEGER_16*/T2 r10to_integer_32(T10 C){ T2 R=0; R=/*IC*/(T2)(C); return R; }/*--*/ /*INTEGER_16*/T3 r10decimal_digit(T10 C){ T3 R=0; R=((T3)(((int16_t)(C))+(INT16_C(48)))); return R; }/*--*/ /*INTEGER_16*/void r10append_in(T10 C,T0* a1){ T10 _val=0; T2 _i=0; T2 _idx=0; if((C)==(INT8_C(0))){ r7extend(((T7*)a1),((T3)'0')); } else{ if(((int16_t)(C))>(INT16_C(0))){ _val=C; _i=((int32_t)((/*RF2*/(((T7*)a1))->_count/*3p*/)))+(INT32_C(1)); } else{ r7extend(((T7*)a1),((T3)'\055')); _i=((int32_t)((/*RF2*/(((T7*)a1))->_count/*3p*/)))+(INT32_C(1)); _val=((int16_t)(C))%(INT16_C(10)); if(((int16_t)(_val))<=(INT16_C(0))){ r7extend(((T7*)a1),r10decimal_digit(-(_val))); _val=-(((int16_t)(C))/(INT16_C(10))); } else{ r7extend(((T7*)a1),r10decimal_digit(((int16_t)(-(_val)))+(INT16_C(10)))); _val=((int16_t)(-(((int16_t)(C))/(INT16_C(10)))))-(INT16_C(1)); } } while(!((_val)==(INT8_C(0)))) { r7extend(((T7*)a1),r10decimal_digit(((int16_t)(_val))%(INT16_C(10)))); _val=((int16_t)(_val))/(INT16_C(10)); } _idx=(/*RF2*/(((T7*)a1))->_count/*3p*/); while(!(((int32_t)(_i))>=(_idx))) { r7swap(((T7*)a1),_i,_idx); _idx=((int32_t)(_idx))-(INT32_C(1)); _i=((int32_t)(_i))+(INT32_C(1)); } } }/*--*/ T9 oBC102sprintf_buffer=(void*)0; /*REAL_64*/void r5append_in_format(T5 C,T0* a1,T2 a2){ T2 _i=0; sprintf_real_64(oBC102sprintf_buffer,((T3)'f'),a2,C); _i=INT32_C(0); while(!(((oBC102sprintf_buffer)[_i])==(((T3)'\000')))) { r7extend(((T7*)a1),(oBC102sprintf_buffer)[_i]); _i=((int32_t)(_i))+(INT32_C(1)); } }/*--*/ /*POINTER*/T2 r8hash_code(T8 C){ T2 R=0; R=pointer_hash_code(C); return R; }/*--*/ /*INTEGER_32*/T10 r2high_16(T2 C){ T10 R=0; R=((int16_t)(((C)>>(INT8_C(16))))); return R; }/*--*/ /*INTEGER_32*/T6 r2in_range(T2 C,T2 a1,T2 a2){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; tmp0/*and then*/=((T6)(((int32_t)(C))>=(a1))); if(tmp0/*and then*/){ tmp0/*and then*/=((T6)(((int32_t)(C))<=(a2))); } R=((T6)(tmp0/*and then*/)); return R; }/*--*/ /*INTEGER_32*/T2 r2max(T2 C,T2 a1){ T2 R=0; if(((int32_t)(C))>=(a1)){ R=C; } else{ R=a1; } return R; }/*--*/ /*INTEGER_32*/T3 r2decimal_digit(T2 C){ T3 R=0; R=((T3)(((int32_t)(C))+(INT32_C(48)))); return R; }/*--*/ /*INTEGER_32*/void r2append_in(T2 C,T0* a1){ T2 _val=0; T2 _i=0; T2 _idx=0; if((C)==(INT8_C(0))){ r7extend(((T7*)a1),((T3)'0')); } else{ if(((int32_t)(C))>(INT32_C(0))){ _val=C; _i=((int32_t)((/*RF2*/(((T7*)a1))->_count/*3p*/)))+(INT32_C(1)); } else{ r7extend(((T7*)a1),((T3)'\055')); _i=((int32_t)((/*RF2*/(((T7*)a1))->_count/*3p*/)))+(INT32_C(1)); _val=((int32_t)(C))%(INT32_C(10)); if(((int32_t)(_val))<=(INT32_C(0))){ r7extend(((T7*)a1),r2decimal_digit(-(_val))); _val=-(((int32_t)(C))/(INT32_C(10))); } else{ r7extend(((T7*)a1),r2decimal_digit(((int32_t)(-(_val)))+(INT32_C(10)))); _val=((int32_t)(-(((int32_t)(C))/(INT32_C(10)))))-(INT32_C(1)); } } while(!((_val)==(INT8_C(0)))) { r7extend(((T7*)a1),r2decimal_digit(((int32_t)(_val))%(INT32_C(10)))); _val=((int32_t)(_val))/(INT32_C(10)); } _idx=(/*RF2*/(((T7*)a1))->_count/*3p*/); while(!(((int32_t)(_i))>=(_idx))) { r7swap(((T7*)a1),_i,_idx); _idx=((int32_t)(_idx))-(INT32_C(1)); _i=((int32_t)(_i))+(INT32_C(1)); } } }/*--*/ /*CHARACTER*/T6 r3_ix_6261(T3 C,T3 a1){ T6 R=0; R=((T6)(((int16_t)(T3code(C)))>=(T3code(a1)))); return R; }/*--*/ /*CHARACTER*/T6 r3_ix_6061(T3 C,T3 a1){ T6 R=0; R=((T6)(((int16_t)(T3code(C)))<=(T3code(a1)))); return R; }/*--*/ /*CHARACTER*/T6 r3is_digit(T3 C){ T6 R=0; if((((unsigned)(C))>=((unsigned)(((T3)'0'))))){ R=((T6)((((unsigned)(C))<=((unsigned)(((T3)'9')))))); } return R; }/*--*/ /*CHARACTER*/T1 r3value(T3 C){ T1 R=0; R=((int8_t)(((int8_t)(T3code(C)))))-(INT8_C(48)); return R; }/*--*/ /*CHARACTER*/T6 r3is_separator(T3 C){ T6 R=0; /*[inspect*/ switch(C){ case 0: case 9: case 10: case 12: case 13: case 32: R=((T6)(1)); break; } /*inspect]*/ return R; }/*--*/ /*CHARACTER*/T1 r3decimal_value(T3 C){ T1 R=0; R=((int8_t)(((int8_t)(T3code(C)))))-(INT8_C(48)); return R; }/*--*/ /*BOOLEAN*/T6 r6_ix_or(T6 C,T6 a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; tmp0/*or else*/=((T6)(C)); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(a1)); } R=((T6)(tmp0/*or else*/)); return R; }/*--*/ /*NATIVE_ARRAY[PROCEDURE[TUPLE[X_INPUT_DEVICE]]]*/T334 r334realloc(T334 C,T2 a1,T2 a2){ T334 R=(void*)0; R=new334(a2); r334copy_from(R,C,((int32_t)(a1))-(INT32_C(1))); return R; }/*--*/ /*NATIVE_ARRAY[PROCEDURE[TUPLE[X_INPUT_DEVICE]]]*/void r334copy_from(T334 C,T334 a1,T2 a2){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=((a1)[_i]); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[PROCEDURE[TUPLE[X_INPUT_DEVICE]]]*/void r334clear_all(T334 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[HASHED_DICTIONARY_NODE[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]]*/void r333clear_all(T333 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[JOB]*/T332 r332realloc(T332 C,T2 a1,T2 a2){ T332 R=(void*)0; R=new332(a2); r332copy_from(R,C,((int32_t)(a1))-(INT32_C(1))); return R; }/*--*/ /*NATIVE_ARRAY[JOB]*/void r332copy_from(T332 C,T332 a1,T2 a2){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=((a1)[_i]); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[JOB]*/void r332clear_all(T332 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[JOB]*/void r332remove(T332 C,T2 a1,T2 a2){ T2 _i=0; _i=a1; while(!((_i)==(a2))) { (C)[_i]=((C)[((int32_t)(_i))+(INT32_C(1))]); _i=((int32_t)(_i))+(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[TOPLEVEL_WINDOW]*/void r331clear_all(T331 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[EVENT_CATCHER]*/void r330clear_all(T330 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[HASHED_DICTIONARY_NODE[SENSITIVE,POINTER]]*/void r328clear_all(T328 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[HASHED_DICTIONARY_NODE[SIGNAL_0,SENSITIVE]]*/void r324clear_all(T324 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[DICTIONARY[SIGNAL_0,SENSITIVE]]*/void r321clear_all(T321 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[HASHED_DICTIONARY_NODE[SIGNAL_2[INTEGER_32,INTEGER_32],SENSITIVE]]*/void r316clear_all(T316 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[HASHED_DICTIONARY_NODE[SIGNAL_4[INTEGER_32,INTEGER_32,INTEGER_32,INTEGER_32],SENSITIVE]]*/void r310clear_all(T310 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[HASHED_DICTIONARY_NODE[EXTENSION_DEVICE,INTEGER_32]]*/void r306clear_all(T306 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[KEY_RANGE]*/T305 r305realloc(T305 C,T2 a1,T2 a2){ T305 R=(void*)0; R=new305(a2); r305copy_from(R,C,((int32_t)(a1))-(INT32_C(1))); return R; }/*--*/ /*NATIVE_ARRAY[KEY_RANGE]*/void r305copy_from(T305 C,T305 a1,T2 a2){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=((a1)[_i]); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[KEY_RANGE]*/void r305clear_all(T305 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[BUTTON_RANGE]*/T304 r304realloc(T304 C,T2 a1,T2 a2){ T304 R=(void*)0; R=new304(a2); r304copy_from(R,C,((int32_t)(a1))-(INT32_C(1))); return R; }/*--*/ /*NATIVE_ARRAY[BUTTON_RANGE]*/void r304copy_from(T304 C,T304 a1,T2 a2){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=((a1)[_i]); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[BUTTON_RANGE]*/void r304clear_all(T304 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[AXES_RANGE]*/T303 r303realloc(T303 C,T2 a1,T2 a2){ T303 R=(void*)0; R=new303(a2); r303copy_from(R,C,((int32_t)(a1))-(INT32_C(1))); return R; }/*--*/ /*NATIVE_ARRAY[AXES_RANGE]*/void r303copy_from(T303 C,T303 a1,T2 a2){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=((a1)[_i]); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[AXES_RANGE]*/void r303clear_all(T303 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[HASHED_DICTIONARY_NODE[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]]*/void r301clear_all(T301 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[SIGNAL_1[X_INPUT_DEVICE]]*/void r299clear_all(T299 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[HASHED_DICTIONARY_NODE[INTEGER_32,INTEGER_32]]*/void r295clear_all(T295 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[INTEGER_32]*/void r294set_slice_with(T294 C,T2 a1,T2 a2,T2 a3){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))>(a3))) { (C)[_i]=(a1); _i=((int32_t)(_i))+(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[INTEGER_32]*/T294 r294realloc(T294 C,T2 a1,T2 a2){ T294 R=(void*)0; R=new294(a2); r294copy_from(R,C,((int32_t)(a1))-(INT32_C(1))); return R; }/*--*/ /*NATIVE_ARRAY[INTEGER_32]*/void r294copy_from(T294 C,T294 a1,T2 a2){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=((a1)[_i]); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[INTEGER_32]*/void r294clear_all(T294 C,T2 a1){ T2 _v=0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[INTEGER_32]*/void r294set_all_with(T294 C,T2 a1,T2 a2){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(a1); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[HASHED_DICTIONARY_NODE[POINTER,STRING]]*/void r291clear_all(T291 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[HASHED_DICTIONARY_NODE[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]]*/void r283clear_all(T283 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[IVY_CLIENT]*/T282 r282realloc(T282 C,T2 a1,T2 a2){ T282 R=(void*)0; R=new282(a2); r282copy_from(R,C,((int32_t)(a1))-(INT32_C(1))); return R; }/*--*/ /*NATIVE_ARRAY[IVY_CLIENT]*/void r282clear_all(T282 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[IVY_CLIENT]*/void r282copy_from(T282 C,T282 a1,T2 a2){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=((a1)[_i]); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[IVY_CLIENT]*/void r282remove(T282 C,T2 a1,T2 a2){ T2 _i=0; _i=a1; while(!((_i)==(a2))) { (C)[_i]=((C)[((int32_t)(_i))+(INT32_C(1))]); _i=((int32_t)(_i))+(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[IVY_CLIENT]*/void r282clear(T282 C,T2 a1,T2 a2){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))>(a2))) { (C)[_i]=(_v); _i=((int32_t)(_i))+(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[IVY_CLIENT]*/T2 r282fast_index_of(T282 C,T0* a1,T2 a2,T2 a3){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T2 R=0; R=a2; while(1){ tmp0/*or else*/=((T6)(((int32_t)(R))>(a3))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)((a1)==((void*)((C)[R])))); } if(tmp0/*or else*/){ break; } R=((int32_t)(R))+(INT32_C(1)); } return R; }/*--*/ /*NATIVE_ARRAY[LOOP_ITEM]*/T281 r281realloc(T281 C,T2 a1,T2 a2){ T281 R=(void*)0; R=new281(a2); r281copy_from(R,C,((int32_t)(a1))-(INT32_C(1))); return R; }/*--*/ /*NATIVE_ARRAY[LOOP_ITEM]*/void r281copy_from(T281 C,T281 a1,T2 a2){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=((a1)[_i]); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[LOOP_ITEM]*/void r281clear_all(T281 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[X_INPUT_DEVICE]*/void r264clear_all(T264 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[STRING]*/T255 r255realloc(T255 C,T2 a1,T2 a2){ T255 R=(void*)0; R=new255(a2); r255copy_from(R,C,((int32_t)(a1))-(INT32_C(1))); return R; }/*--*/ /*NATIVE_ARRAY[STRING]*/void r255copy_from(T255 C,T255 a1,T2 a2){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=((a1)[_i]); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[STRING]*/void r255clear_all(T255 C,T2 a1){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[STRING]*/void r255set_all_with(T255 C,T0* a1,T2 a2){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(a1); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[STRING]*/void r255clear(T255 C,T2 a1,T2 a2){ T0* _v=(void*)0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))>(a2))) { (C)[_i]=(_v); _i=((int32_t)(_i))+(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[CHARACTER]*/void r9fast_replace_all(T9 C,T3 a1,T3 a2,T2 a3){ T2 _i=0; _i=a3; while(!(((int32_t)(_i))<(INT32_C(0)))) { if((a1)==((C)[_i])){ (C)[_i]=(a2); } _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[CHARACTER]*/T9 r9realloc(T9 C,T2 a1,T2 a2){ T9 R=(void*)0; R=new9(a2); r9copy_from(R,C,((int32_t)(a1))-(INT32_C(1))); return R; }/*--*/ /*NATIVE_ARRAY[CHARACTER]*/void r9copy_from(T9 C,T9 a1,T2 a2){ T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=((a1)[_i]); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[CHARACTER]*/void r9clear_all(T9 C,T2 a1){ T3 _v=0; T2 _i=0; _i=a1; while(!(((int32_t)(_i))<(INT32_C(0)))) { (C)[_i]=(_v); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[CHARACTER]*/void r9copy_at(T9 C,T2 a1,T9 a2,T2 a3){ T2 _at_idx=0; T2 _src_idx=0; _src_idx=((int32_t)(a3))-(INT32_C(1)); _at_idx=((int32_t)(a1))+(_src_idx); while(!(((int32_t)(_src_idx))<(INT32_C(0)))) { (C)[_at_idx]=((a2)[_src_idx]); _src_idx=((int32_t)(_src_idx))-(INT32_C(1)); _at_idx=((int32_t)(_at_idx))-(INT32_C(1)); } }/*--*/ /*NATIVE_ARRAY[CHARACTER]*/T6 r9fast_memcmp(T9 C,T9 a1,T2 a2){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; T2 _i=0; _i=((int32_t)(a2))-(INT32_C(1)); while(1){ tmp0/*or else*/=((T6)(((int32_t)(_i))<(INT32_C(0)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(((C)[_i])!=((a1)[_i]))); } if(tmp0/*or else*/){ break; } _i=((int32_t)(_i))-(INT32_C(1)); } R=((T6)(((int32_t)(_i))<(INT32_C(0)))); return R; }/*--*/ /*NATIVE_ARRAY[CHARACTER]*/T2 r9fast_index_of(T9 C,T3 a1,T2 a2,T2 a3){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T2 R=0; R=a2; while(1){ tmp0/*or else*/=((T6)(((int32_t)(R))>(a3))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)((a1)==((C)[R]))); } if(tmp0/*or else*/){ break; } R=((int32_t)(R))+(INT32_C(1)); } return R; }/*--*/ /*NATIVE_ARRAY[CHARACTER]*/T2 r9fast_occurrences(T9 C,T3 a1,T2 a2){ T2 R=0; T2 _i=0; _i=a2; while(!(((int32_t)(_i))<(INT32_C(0)))) { if((a1)==((C)[_i])){ R=((int32_t)(R))+(INT32_C(1)); } _i=((int32_t)(_i))-(INT32_C(1)); } return R; }/*--*/ T7*create7from_external(T8 a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ tmp0/*new*/=((T0*)(new7())); r7from_external(((T7*)tmp0/*new*/),a1); return ((T7*)tmp0/*new*/); /*tmp0.unlock*/ }/*--*/ /*STRING*/T6 r7is_equal(T7* C,T0* a1){ T6 R=0; if(((/*RF2*/(C)->_count/*3p*/))==((/*RF2*/(((T7*)a1))->_count/*3p*/))){ R=((T6)(r9fast_memcmp((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(((T7*)a1))->_storage/*3p*/),(/*RF2*/(C)->_count/*3p*/)))); } return R; }/*--*/ /*STRING*/T5 r7to_real(T7* C){ T5 R=0; T2 _i=0; T2 _state=0; T3 _cc=0; T5 _base=0; T5 _exp=0; T5 _multiplier=0; T6 _negative=0; T6 _neg_exp=0; _i=INT32_C(1); while(!(((int32_t)(_i))>((/*RF2*/(C)->_count/*3p*/)))) { _cc=r7item(C,_i); /*[inspect*/ switch(_state){ case 0: if(r3is_separator(_cc)){ } else{ if((_cc)==(((T3)'\053'))){ _state=INT32_C(1); } else{ if((_cc)==(((T3)'\055'))){ _negative=((T6)(1)); _state=INT32_C(1); } else{ if(r3is_digit(_cc)){ _base=/*IC*/(T5)(r3decimal_value(_cc)); _state=INT32_C(2); } else{ _state=INT32_C(3); } } } } break; case 1: if(r3is_digit(_cc)){ _base=/*IC*/(T5)(r3decimal_value(_cc)); _state=INT32_C(2); } else{ _state=INT32_C(3); } break; case 2: if(r3is_digit(_cc)){ _base=((_base)*(/*IC*/(T5)(INT8_C(10))))+(/*IC*/(T5)(r3decimal_value(_cc))); } else{ if((_cc)==(((T3)'\056'))){ _state=INT32_C(3); } else{ if(r3is_separator(_cc)){ _state=INT32_C(8); } else{ _state=INT32_C(5); } } } break; case 3: _multiplier=/*0.1*/1e-1; if(r3is_separator(_cc)){ _state=INT32_C(8); } else{ _base=(_base)+((_multiplier)*(/*IC*/(T5)(r3decimal_value(_cc)))); _state=INT32_C(4); } break; case 4: _multiplier=(_multiplier)*(/*0.1*/1e-1); if(r3is_digit(_cc)){ _base=(_base)+((_multiplier)*(/*IC*/(T5)(r3decimal_value(_cc)))); } else{ if(r3is_separator(_cc)){ _state=INT32_C(8); } else{ _state=INT32_C(5); } } break; case 5: if((_cc)==(((T3)'\055'))){ _neg_exp=((T6)(1)); _state=INT32_C(6); } else{ if((_cc)==(((T3)'\053'))){ _state=INT32_C(6); } else{ _exp=/*IC*/(T5)(r3decimal_value(_cc)); _state=INT32_C(7); } } break; case 6: _exp=/*IC*/(T5)(r3decimal_value(_cc)); _state=INT32_C(7); break; case 7: if(r3is_digit(_cc)){ _exp=((_exp)*(/*IC*/(T5)(INT8_C(10))))+(/*IC*/(T5)(r3decimal_value(_cc))); } else{ _state=INT32_C(8); } break; default:; _i=(/*RF2*/(C)->_count/*3p*/); } /*inspect]*/ _i=((int32_t)(_i))+(INT32_C(1)); } if(_neg_exp){ _exp=(/*IC*/(T5)(INT8_C(-1)))*(_exp); } if(_negative){ R=((/*IC*/(T5)(INT8_C(-1)))*(_base))*(pow(/*10.0*/1e1,_exp)); } else{ R=(_base)*(pow(/*10.0*/1e1,_exp)); } return R; }/*--*/ /*STRING*/void r7put(T7* C,T3 a1,T2 a2){ ((/*RF2*/(C)->_storage/*3p*/))[((int32_t)(a2))-(INT32_C(1))]=(a1); }/*--*/ /*STRING*/void r7remove_between(T7* C,T2 a1,T2 a2){ T2 _i=0; T2 _len=0; _len=((int32_t)(((int32_t)(a2))-(a1)))+(INT32_C(1)); if(((int32_t)(_len))>(INT32_C(0))){ _i=((int32_t)(a2))+(INT32_C(1)); while(!(((int32_t)(_i))>((/*RF2*/(C)->_count/*3p*/)))) { r7put(C,r7item(C,_i),((int32_t)(_i))-(_len)); _i=((int32_t)(_i))+(INT32_C(1)); } /*SFN*/(C->_count/*3p*/)=((int32_t)((/*RF2*/(C)->_count/*3p*/)))-(_len); } }/*--*/ /*STRING*/void r7copy(T7* C,T0* a1){ T2 _c=0; _c=(/*RF2*/(((T7*)a1))->_count/*3p*/); if(((int32_t)(_c))>(INT32_C(0))){ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))<(_c)){ /*SFN*/(C->_storage/*3p*/)=new9(_c); /*SFN*/(C->_capacity/*3p*/)=_c; } r9copy_from((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(((T7*)a1))->_storage/*3p*/),((int32_t)(_c))-(INT32_C(1))); } /*SFN*/(C->_count/*3p*/)=_c; }/*--*/ T0*oBC7string_buffer=(void*)0; int fBC7string_buffer=0; /*STRING*/T0* r7string_buffer(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ if(fBC7string_buffer==0){fBC7string_buffer=1;{ tmp0/*new*/=((T0*)(new7())); r7make(((T7*)tmp0/*new*/),INT32_C(256)); oBC7string_buffer=tmp0/*new*/; /*tmp0.unlock*/ }} return oBC7string_buffer; }/*--*/ T0*oBC7split_buffer=(void*)0; int fBC7split_buffer=0; /*STRING*/T0* r7split_buffer(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ if(fBC7split_buffer==0){fBC7split_buffer=1;{ tmp0/*new*/=((T0*)(new257())); r257with_capacity(((T257*)tmp0/*new*/),INT32_C(4),INT32_C(1)); oBC7split_buffer=tmp0/*new*/; /*tmp0.unlock*/ }} return oBC7split_buffer; }/*--*/ /*STRING*/T0* r7split(T7* C){ T0* R=(void*)0; if(((int32_t)((/*RF2*/(C)->_count/*3p*/)))>(INT32_C(0))){ r257clear_count((T257*)(r7split_buffer())); r7split_in(C,r7split_buffer()); if((r257is_empty((T257*)(r7split_buffer())))==(0)){ R=r257twin((T257*)(r7split_buffer())); } } return R; }/*--*/ /*STRING*/void r7append(T7* C,T0* a1){ T2 _s_count=0; T2 _needed_capacity=0; _s_count=(/*RF2*/(((T7*)a1))->_count/*3p*/); _needed_capacity=((int32_t)((/*RF2*/(C)->_count/*3p*/)))+(_s_count); if(((int32_t)(_needed_capacity))>((/*RF2*/(C)->_capacity/*3p*/))){ r7ensure_capacity(C,_needed_capacity); } r9copy_at((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_count/*3p*/),(/*RF2*/(((T7*)a1))->_storage/*3p*/),_s_count); /*SFN*/(C->_count/*3p*/)=_needed_capacity; }/*--*/ /*STRING*/T6 r7is_real(T7* C){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; T6 tmp1; T6 tmp2; /*INTERNAL_C_LOCAL list]*/ T6 R=0; T2 _i=0; T2 _state=0; T3 _cc=0; T5 _base=0; T5 _exp=0; T5 _value=0; T5 _multiplier=0; T6 _negative=0; T6 _neg_exp=0; _i=INT32_C(1); while(1){ tmp0/*or else*/=((T6)((_state)==(INT8_C(9)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(((int32_t)(_i))>((/*RF2*/(C)->_count/*3p*/)))); } if(tmp0/*or else*/){ break; } _cc=r7item(C,_i); /*[inspect*/ switch(_state){ case 0: if(r3is_separator(_cc)){ } else{ if((_cc)==(((T3)'\053'))){ _state=INT32_C(1); } else{ if((_cc)==(((T3)'\055'))){ _negative=((T6)(1)); _state=INT32_C(1); } else{ if(r3is_digit(_cc)){ _base=/*IC*/(T5)(r3decimal_value(_cc)); _state=INT32_C(2); } else{ if((_cc)==(((T3)'\056'))){ _state=INT32_C(3); } else{ _state=INT32_C(9); } } } } } break; case 1: if(r3is_digit(_cc)){ _base=/*IC*/(T5)(r3decimal_value(_cc)); _state=INT32_C(2); } else{ if((_cc)==(((T3)'\056'))){ _state=INT32_C(3); } else{ _state=INT32_C(9); } } break; case 2: if(r3is_digit(_cc)){ _base=((_base)*(/*IC*/(T5)(INT8_C(10))))+(/*IC*/(T5)(r3decimal_value(_cc))); } else{ if((_cc)==(((T3)'\056'))){ _state=INT32_C(3); } else{ tmp1/*or else*/=((T6)((_cc)==(((T3)'e')))); if(tmp1/*or else*/){ } else{ tmp1/*or else*/=((T6)((_cc)==(((T3)'E')))); } if(tmp1/*or else*/){ _state=INT32_C(5); } else{ if(r3is_separator(_cc)){ _state=INT32_C(8); } else{ _state=INT32_C(9); } } } } break; case 3: _multiplier=/*0.1*/1e-1; if(r3is_digit(_cc)){ _base=(_base)+((_multiplier)*(/*IC*/(T5)(r3decimal_value(_cc)))); _state=INT32_C(4); } else{ _state=INT32_C(9); } break; case 4: _multiplier=(_multiplier)*(/*0.1*/1e-1); if(r3is_digit(_cc)){ _base=(_base)+((_multiplier)*(/*IC*/(T5)(r3decimal_value(_cc)))); } else{ if(r3is_separator(_cc)){ _state=INT32_C(8); } else{ tmp2/*or else*/=((T6)((_cc)==(((T3)'e')))); if(tmp2/*or else*/){ } else{ tmp2/*or else*/=((T6)((_cc)==(((T3)'E')))); } if(tmp2/*or else*/){ _state=INT32_C(5); } else{ _state=INT32_C(9); } } } break; case 5: if((_cc)==(((T3)'\055'))){ _neg_exp=((T6)(1)); _state=INT32_C(6); } else{ if((_cc)==(((T3)'\053'))){ _state=INT32_C(6); } else{ if(r3is_digit(_cc)){ _exp=/*IC*/(T5)(r3decimal_value(_cc)); _state=INT32_C(7); } else{ _state=INT32_C(9); } } } break; case 6: if(r3is_digit(_cc)){ _exp=/*IC*/(T5)(r3decimal_value(_cc)); _state=INT32_C(7); } else{ _state=INT32_C(9); } break; case 7: if(r3is_digit(_cc)){ _exp=((_exp)*(/*IC*/(T5)(INT8_C(10))))+(/*IC*/(T5)(r3decimal_value(_cc))); } else{ if(r3is_separator(_cc)){ _state=INT32_C(8); } else{ _state=INT32_C(9); } } break; default:; if(r3is_separator(_cc)){ } else{ _state=INT32_C(9); } } /*inspect]*/ _i=((int32_t)(_i))+(INT32_C(1)); } /*auto-unlock tmp1*/tmp1/*and then*/=((T6)((_state)!=(INT8_C(0)))); if(tmp1/*and then*/){ tmp1/*and then*/=((T6)((_state)!=(INT8_C(9)))); } /*auto-unlock tmp2*/tmp2/*and then*/=((T6)(tmp1/*and then*/)); if(tmp2/*and then*/){ tmp2/*and then*/=((T6)((_state)!=(INT8_C(1)))); } if(tmp2/*and then*/){ R=((T6)(1)); if(_neg_exp){ _exp=(/*IC*/(T5)(INT8_C(-1)))*(_exp); } _value=(_base)*(pow(/*10.0*/1e1,_exp)); if((_value)>(EIF_MAXIMUM_REAL)){ R=((T6)(0)); } } return R; }/*--*/ /*STRING*/T2 r7index_of(T7* C,T3 a1,T2 a2){ T2 R=0; if(((int32_t)(a2))<=((/*RF2*/(C)->_count/*3p*/))){ R=r9fast_index_of((/*RF2*/(C)->_storage/*3p*/),a1,((int32_t)(a2))-(INT32_C(1)),((int32_t)((/*RF2*/(C)->_count/*3p*/)))-(INT32_C(1))); if((R)==((/*RF2*/(C)->_count/*3p*/))){ R=INT32_C(0); } else{ R=((int32_t)(R))+(INT32_C(1)); } } return R; }/*--*/ /*STRING*/void r7replace_all(T7* C,T3 a1,T3 a2){ r9fast_replace_all((/*RF2*/(C)->_storage/*3p*/),a1,a2,((int32_t)((/*RF2*/(C)->_count/*3p*/)))-(INT32_C(1))); }/*--*/ /*STRING*/T6 r7is_integer(T7* C){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; T2 _i=0; T2 _state=0; T2 _value=0; T2 _bound=0; T2 _critical_bound=0; T3 _cc=0; _i=INT32_C(1); while(1){ tmp0/*or else*/=((T6)((_state)==(INT8_C(2)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(((int32_t)(_i))>((/*RF2*/(C)->_count/*3p*/)))); } if(tmp0/*or else*/){ break; } _cc=r7item(C,_i); /*[inspect*/ switch(_state){ case 0: if(r3is_separator(_cc)){ } else{ if((_cc)==(((T3)'\053'))){ _bound=INT32_C(7); _critical_bound=INT32_C(214748364); _state=INT32_C(1); } else{ if((_cc)==(((T3)'\055'))){ _bound=INT32_C(8); _critical_bound=INT32_C(214748364); _state=INT32_C(1); } else{ if(r3is_digit(_cc)){ _bound=INT32_C(7); _critical_bound=INT32_C(214748364); _value=/*IC*/(T2)(r3decimal_value(_cc)); _state=INT32_C(3); } else{ _state=INT32_C(2); } } } } break; case 1: if(r3is_digit(_cc)){ _value=/*IC*/(T2)(r3decimal_value(_cc)); _state=INT32_C(3); } else{ _state=INT32_C(2); } break; case 3: if(r3is_digit(_cc)){ _value=((int32_t)(((int32_t)(INT32_C(10)))*(_value)))+(/*IC*/(T2)(r3decimal_value(_cc))); if(((int32_t)(_value))>=(_critical_bound)){ _state=INT32_C(4); } } else{ if(r3is_separator(_cc)){ _state=INT32_C(5); } else{ _state=INT32_C(2); } } break; case 4: if(r3is_digit(_cc)){ if(((int32_t)(_value))>(_critical_bound)){ _state=INT32_C(2); } else{ if(((int32_t)(/*IC*/(T2)(r3decimal_value(_cc))))<=(_bound)){ _state=INT32_C(5); } else{ _state=INT32_C(2); } } } else{ if(r3is_separator(_cc)){ _state=INT32_C(5); } else{ _state=INT32_C(2); } } break; default:; if(r3is_separator(_cc)){ } else{ _state=INT32_C(2); } } /*inspect]*/ _i=((int32_t)(_i))+(INT32_C(1)); } R=((T6)(((int32_t)(_state))>=(INT32_C(3)))); return R; }/*--*/ /*STRING*/T0* r7twin(T7* C){ T0* R=(void*)0; R=(void*)new7(); r7copy(((T7*)R),((T0*)C)); return R; }/*--*/ /*STRING*/void r7remove_tail(T7* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_count/*3p*/))){ /*SFN*/(C->_count/*3p*/)=INT32_C(0); } else{ /*SFN*/(C->_count/*3p*/)=((int32_t)((/*RF2*/(C)->_count/*3p*/)))-(a1); } }/*--*/ /*STRING*/T6 r7has_prefix(T7* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; T2 _i=0; if(((int32_t)((/*RF2*/(((T7*)a1))->_count/*3p*/)))<=((/*RF2*/(C)->_count/*3p*/))){ _i=(/*RF2*/(((T7*)a1))->_count/*3p*/); while(1){ tmp0/*or else*/=((T6)((_i)==(INT8_C(0)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)((r7item(C,_i))!=(r7item(((T7*)a1),_i)))); } if(tmp0/*or else*/){ break; } _i=((int32_t)(_i))-(INT32_C(1)); } R=((T6)((_i)==(INT8_C(0)))); } return R; }/*--*/ /*STRING*/void r7extend(T7* C,T3 a1){ if(((/*RF2*/(C)->_count/*3p*/))==((/*RF2*/(C)->_capacity/*3p*/))){ r7ensure_capacity(C,((int32_t)((/*RF2*/(C)->_count/*3p*/)))+(INT32_C(1))); } ((/*RF2*/(C)->_storage/*3p*/))[(/*RF2*/(C)->_count/*3p*/)]=(a1); /*SFN*/(C->_count/*3p*/)=((int32_t)((/*RF2*/(C)->_count/*3p*/)))+(INT32_C(1)); }/*--*/ /*STRING*/T2 r7hash_code(T7* C){ T2 R=0; T2 _i=0; T2 _j=0; _j=(/*RF2*/(C)->_count/*3p*/); _i=INT32_C(1); while(!(((int32_t)(_j))<=(INT32_C(0)))) { R=(int32_t)(((uint32_t)((int32_t)(((uint32_t)(/*{INTEGER_32 5}*/INT32_C(5)))*((uint32_t)(R)))))+((uint32_t)(/*IC*/(T2)(T3code(r7item(C,_i)))))); _i=((int32_t)(_i))+(INT32_C(1)); _j=((int32_t)(_j))-(INT32_C(1)); } if(((int32_t)(R))<(INT32_C(0))){ R=~(R); } return R; }/*--*/ /*STRING*/void r7remove_last(T7* C){ /*SFN*/(C->_count/*3p*/)=((int32_t)((/*RF2*/(C)->_count/*3p*/)))-(INT32_C(1)); }/*--*/ /*STRING*/void r7make(T7* C,T2 a1){ if(((int32_t)(a1))>(INT32_C(0))){ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))<(a1)){ /*SFN*/(C->_storage/*3p*/)=new9(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } } /*SFN*/(C->_count/*3p*/)=INT32_C(0); }/*--*/ /*STRING*/void r7add_last(T7* C,T3 a1){ if(((/*RF2*/(C)->_count/*3p*/))==((/*RF2*/(C)->_capacity/*3p*/))){ r7ensure_capacity(C,((int32_t)((/*RF2*/(C)->_count/*3p*/)))+(INT32_C(1))); } ((/*RF2*/(C)->_storage/*3p*/))[(/*RF2*/(C)->_count/*3p*/)]=(a1); /*SFN*/(C->_count/*3p*/)=((int32_t)((/*RF2*/(C)->_count/*3p*/)))+(INT32_C(1)); }/*--*/ /*STRING*/void r7ensure_capacity(T7* C,T2 a1){ T2 _new_capacity=0; if(((NULL!=((void*)((/*RF2*/(C)->_storage/*3p*/)))))==(0)){ _new_capacity=r2max(a1,INT32_C(32)); /*SFN*/(C->_storage/*3p*/)=new9(_new_capacity); /*SFN*/(C->_capacity/*3p*/)=_new_capacity; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))<(a1)){ _new_capacity=r2max(a1,(int32_t)(((uint32_t)((/*RF2*/(C)->_capacity/*3p*/)))*((uint32_t)(INT32_C(2))))); /*SFN*/(C->_storage/*3p*/)=r9realloc((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_capacity/*3p*/),_new_capacity); /*SFN*/(C->_capacity/*3p*/)=_new_capacity; } } }/*--*/ /*STRING*/void r7from_external_copy(T7* C,T8 a1){ T9 _s=(void*)0; T2 _i=0; _s=a1; /*SFN*/(C->_count/*3p*/)=INT32_C(0); while(!(((_s)[_i])==(((T3)'\000')))) { r7add_last(C,(_s)[_i]); _i=((int32_t)(_i))+(INT32_C(1)); } }/*--*/ /*STRING*/void r7from_external(T7* C,T8 a1){ /*SFN*/(C->_storage/*3p*/)=a1; /*SFN*/(C->_count/*3p*/)=INT32_C(0); while(!((((/*RF2*/(C)->_storage/*3p*/))[(/*RF2*/(C)->_count/*3p*/)])==(((T3)'\000')))) { /*SFN*/(C->_count/*3p*/)=((int32_t)((/*RF2*/(C)->_count/*3p*/)))+(INT32_C(1)); } /*SFN*/(C->_capacity/*3p*/)=((int32_t)((/*RF2*/(C)->_count/*3p*/)))+(INT32_C(1)); }/*--*/ /*STRING*/T8 r7to_external(T7* C){ T8 R=(void*)0; if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>((/*RF2*/(C)->_count/*3p*/))){ /*SFN*/(C->_count/*3p*/)=((int32_t)((/*RF2*/(C)->_count/*3p*/)))+(INT32_C(1)); if((r7item(C,(/*RF2*/(C)->_count/*3p*/)))!=(((T3)'\000'))){ r7put(C,((T3)'\000'),(/*RF2*/(C)->_count/*3p*/)); } } else{ r7add_last(C,((T3)'\000')); } /*SFN*/(C->_count/*3p*/)=((int32_t)((/*RF2*/(C)->_count/*3p*/)))-(INT32_C(1)); R=((void*)((/*RF2*/(C)->_storage/*3p*/))); return R; }/*--*/ /*STRING*/T2 r7to_integer(T7* C){ T2 R=0; T2 _i=0; T3 _cc=0; T6 _negative=0; _i=INT32_C(1); while(!((r3is_separator(r7item(C,_i)))==(0))) { _i=((int32_t)(_i))+(INT32_C(1)); } _cc=r7item(C,_i); _i=((int32_t)(_i))+(INT32_C(1)); if((_cc)==(((T3)'\053'))){ _cc=r7item(C,_i); _i=((int32_t)(_i))+(INT32_C(1)); } else{ if((_cc)==(((T3)'\055'))){ _negative=((T6)(1)); _cc=r7item(C,_i); _i=((int32_t)(_i))+(INT32_C(1)); } } R=/*IC*/(T2)(-(r3value(_cc))); while(!(((int32_t)(_i))>((/*RF2*/(C)->_count/*3p*/)))) { _cc=r7item(C,_i); if(r3is_digit(_cc)){ R=((int32_t)(((int32_t)(INT32_C(10)))*(R)))-(/*IC*/(T2)(r3decimal_value(_cc))); } else{ _i=(/*RF2*/(C)->_count/*3p*/); } _i=((int32_t)(_i))+(INT32_C(1)); } if(_negative){ } else{ R=-(R); } return R; }/*--*/ /*STRING*/void r7remove_head(T7* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_count/*3p*/))){ /*SFN*/(C->_count/*3p*/)=INT32_C(0); } else{ if(((int32_t)(a1))>(INT32_C(0))){ r7remove_between(C,INT32_C(1),a1); } } }/*--*/ /*STRING*/void r7split_in(T7* C,T0* a1){ T2 _state=0; T2 _i=0; T3 _c=0; if(((int32_t)((/*RF2*/(C)->_count/*3p*/)))>(INT32_C(0))){ _i=INT32_C(1); while(!(((int32_t)(_i))>((/*RF2*/(C)->_count/*3p*/)))) { _c=r7item(C,_i); if((_state)==(INT8_C(0))){ if((r3is_separator(_c))==(0)){ (/*RF2*/((T7*)(r7string_buffer()))->_count/*3p*/)=INT32_C(0); r7add_last((T7*)(r7string_buffer()),_c); _state=INT32_C(1); } } else{ if((r3is_separator(_c))==(0)){ r7add_last((T7*)(r7string_buffer()),_c); } else{ r257add_last(((T257*)/*no_dispatch.e*/a1),r7twin((T7*)(r7string_buffer()))); _state=INT32_C(0); } } _i=((int32_t)(_i))+(INT32_C(1)); } if((_state)==(INT8_C(1))){ r257add_last(((T257*)/*no_dispatch.e*/a1),r7twin((T7*)(r7string_buffer()))); } } }/*--*/ /*STRING*/void r7swap(T7* C,T2 a1,T2 a2){ T3 _tmp=0; _tmp=r7item(C,a1); r7put(C,r7item(C,a2),a1); r7put(C,_tmp,a2); }/*--*/ /*STRING*/T3 r7item(T7* C,T2 a1){ T3 R=0; R=((/*RF2*/(C)->_storage/*3p*/))[((int32_t)(a1))-(INT32_C(1))]; return R; }/*--*/ /*STRING*/T2 r7first_index_of(T7* C,T3 a1){ T2 R=0; R=r7index_of(C,a1,INT32_C(1)); return R; }/*--*/ /*STRING*/T2 r7occurrences(T7* C,T3 a1){ T2 R=0; R=r9fast_occurrences((/*RF2*/(C)->_storage/*3p*/),a1,((int32_t)((/*RF2*/(C)->_count/*3p*/)))-(INT32_C(1))); return R; }/*--*/ /*FAST_ARRAY[PROCEDURE[TUPLE[X_INPUT_DEVICE]]]*/void r298make(T298* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new334(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r334clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[PROCEDURE[TUPLE[X_INPUT_DEVICE]]]*/void r298add_last(T298* C,T0* a1){ T2 _new_capacity=0; if(((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1))))<=(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))-(INT32_C(1)))){ /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } else{ if(((/*RF2*/(C)->_capacity/*3p*/))==(INT8_C(0))){ /*SFN*/(C->_storage/*3p*/)=new334(INT32_C(2)); /*SFN*/(C->_capacity/*3p*/)=INT32_C(2); /*SFN*/(C->_upper/*3p*/)=INT32_C(0); } else{ _new_capacity=((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))*(INT32_C(2)); /*SFN*/(C->_storage/*3p*/)=r334realloc((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_capacity/*3p*/),_new_capacity); /*SFN*/(C->_capacity/*3p*/)=_new_capacity; /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } } ((/*RF2*/(C)->_storage/*3p*/))[(/*RF2*/(C)->_upper/*3p*/)]=(a1); }/*--*/ /*FAST_ARRAY[PROCEDURE[TUPLE[X_INPUT_DEVICE]]]*/void r298mark_native_arrays(T298* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; if(NULL!=elt)gc_mark245((T245*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*FAST_ARRAY[JOB]*/void r280move(T280* C,T2 a1,T2 a2,T2 a3){ T0* _default_value=(void*)0; T2 _i=0; if((a3)==(INT8_C(0))){ } else{ if(((int32_t)(a3))<(INT32_C(0))){ _i=a1; while(!(((int32_t)(_i))>(a2))) { ((/*RF2*/(C)->_storage/*3p*/))[((int32_t)(_i))+(a3)]=(((/*RF2*/(C)->_storage/*3p*/))[_i]); ((/*RF2*/(C)->_storage/*3p*/))[_i]=(_default_value); _i=((int32_t)(_i))+(INT32_C(1)); } } else{ _i=a2; while(!(((int32_t)(_i))<(a1))) { ((/*RF2*/(C)->_storage/*3p*/))[((int32_t)(_i))+(a3)]=(((/*RF2*/(C)->_storage/*3p*/))[_i]); ((/*RF2*/(C)->_storage/*3p*/))[_i]=(_default_value); _i=((int32_t)(_i))-(INT32_C(1)); } } } }/*--*/ /*FAST_ARRAY[JOB]*/void r280remove(T280* C,T2 a1){ r332remove((/*RF2*/(C)->_storage/*3p*/),a1,(/*RF2*/(C)->_upper/*3p*/)); /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[JOB]*/void r280make(T280* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new332(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r332clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[JOB]*/void r280add_last(T280* C,T0* a1){ T2 _new_capacity=0; if(((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1))))<=(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))-(INT32_C(1)))){ /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } else{ if(((/*RF2*/(C)->_capacity/*3p*/))==(INT8_C(0))){ /*SFN*/(C->_storage/*3p*/)=new332(INT32_C(2)); /*SFN*/(C->_capacity/*3p*/)=INT32_C(2); /*SFN*/(C->_upper/*3p*/)=INT32_C(0); } else{ _new_capacity=((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))*(INT32_C(2)); /*SFN*/(C->_storage/*3p*/)=r332realloc((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_capacity/*3p*/),_new_capacity); /*SFN*/(C->_capacity/*3p*/)=_new_capacity; /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } } ((/*RF2*/(C)->_storage/*3p*/))[(/*RF2*/(C)->_upper/*3p*/)]=(a1); }/*--*/ /*FAST_ARRAY[JOB]*/T6 r280is_empty(T280* C){ T6 R=0; R=((T6)(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))<(INT32_C(0)))); return R; }/*--*/ /*FAST_ARRAY[JOB]*/void r280mark_native_arrays(T280* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; if(NULL!=elt)Xgc_mark72((T0*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*FAST_ARRAY[JOB]*/void r280add(T280* C,T0* a1,T2 a2){ if((a2)==(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)))){ r280add_last(C,a1); } else{ r280add_last(C,a1); r280move(C,a2,((int32_t)((/*RF2*/(C)->_upper/*3p*/)))-(INT32_C(1)),INT32_C(1)); ((/*RF2*/(C)->_storage/*3p*/))[a2]=(a1); } }/*--*/ /*FAST_ARRAY[TOPLEVEL_WINDOW]*/void r279make(T279* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new331(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r331clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[TOPLEVEL_WINDOW]*/void r279mark_native_arrays(T279* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*FAST_ARRAY[EVENT_CATCHER]*/void r277make(T277* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new330(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r330clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[EVENT_CATCHER]*/void r277mark_native_arrays(T277* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; if(NULL!=elt)gc_mark131((T131*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*FAST_ARRAY[DICTIONARY[SIGNAL_0,SENSITIVE]]*/void r273make(T273* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new321(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r321clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[DICTIONARY[SIGNAL_0,SENSITIVE]]*/void r273mark_native_arrays(T273* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; if(NULL!=elt)gc_mark275((T275*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*FAST_ARRAY[KEY_RANGE]*/void r267make(T267* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new305(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r305clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[KEY_RANGE]*/void r267add_last(T267* C,T0* a1){ T2 _new_capacity=0; if(((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1))))<=(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))-(INT32_C(1)))){ /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } else{ if(((/*RF2*/(C)->_capacity/*3p*/))==(INT8_C(0))){ /*SFN*/(C->_storage/*3p*/)=new305(INT32_C(2)); /*SFN*/(C->_capacity/*3p*/)=INT32_C(2); /*SFN*/(C->_upper/*3p*/)=INT32_C(0); } else{ _new_capacity=((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))*(INT32_C(2)); /*SFN*/(C->_storage/*3p*/)=r305realloc((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_capacity/*3p*/),_new_capacity); /*SFN*/(C->_capacity/*3p*/)=_new_capacity; /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } } ((/*RF2*/(C)->_storage/*3p*/))[(/*RF2*/(C)->_upper/*3p*/)]=(a1); }/*--*/ /*FAST_ARRAY[KEY_RANGE]*/void r267mark_native_arrays(T267* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; if(NULL!=elt)gc_mark146((T146*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*FAST_ARRAY[BUTTON_RANGE]*/void r266make(T266* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new304(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r304clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[BUTTON_RANGE]*/void r266add_last(T266* C,T0* a1){ T2 _new_capacity=0; if(((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1))))<=(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))-(INT32_C(1)))){ /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } else{ if(((/*RF2*/(C)->_capacity/*3p*/))==(INT8_C(0))){ /*SFN*/(C->_storage/*3p*/)=new304(INT32_C(2)); /*SFN*/(C->_capacity/*3p*/)=INT32_C(2); /*SFN*/(C->_upper/*3p*/)=INT32_C(0); } else{ _new_capacity=((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))*(INT32_C(2)); /*SFN*/(C->_storage/*3p*/)=r304realloc((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_capacity/*3p*/),_new_capacity); /*SFN*/(C->_capacity/*3p*/)=_new_capacity; /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } } ((/*RF2*/(C)->_storage/*3p*/))[(/*RF2*/(C)->_upper/*3p*/)]=(a1); }/*--*/ /*FAST_ARRAY[BUTTON_RANGE]*/void r266mark_native_arrays(T266* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; if(NULL!=elt)gc_mark149((T149*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*FAST_ARRAY[AXES_RANGE]*/void r265make(T265* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new303(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r303clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[AXES_RANGE]*/void r265add_last(T265* C,T0* a1){ T2 _new_capacity=0; if(((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1))))<=(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))-(INT32_C(1)))){ /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } else{ if(((/*RF2*/(C)->_capacity/*3p*/))==(INT8_C(0))){ /*SFN*/(C->_storage/*3p*/)=new303(INT32_C(2)); /*SFN*/(C->_capacity/*3p*/)=INT32_C(2); /*SFN*/(C->_upper/*3p*/)=INT32_C(0); } else{ _new_capacity=((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))*(INT32_C(2)); /*SFN*/(C->_storage/*3p*/)=r303realloc((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_capacity/*3p*/),_new_capacity); /*SFN*/(C->_capacity/*3p*/)=_new_capacity; /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } } ((/*RF2*/(C)->_storage/*3p*/))[(/*RF2*/(C)->_upper/*3p*/)]=(a1); }/*--*/ /*FAST_ARRAY[AXES_RANGE]*/void r265mark_native_arrays(T265* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; if(NULL!=elt)gc_mark148((T148*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]]*/void r262make(T262* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new299(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r299clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]]*/void r262mark_native_arrays(T262* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; if(NULL!=elt)gc_mark261((T261*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*FAST_ARRAY[INTEGER_32]*/void r259make(T259* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new294(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r294clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[INTEGER_32]*/T2 r259count(T259* C){ T2 R=0; R=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); return R; }/*--*/ /*ARRAY[STRING]*/void r257put(T257* C,T0* a1,T2 a2){ ((/*RF2*/(C)->_storage/*4p*/))[((int32_t)(a2))-((/*RF2*/(C)->_lower/*4p*/))]=(a1); }/*--*/ /*ARRAY[STRING]*/void r257clear_all(T257* C){ T0* _value=(void*)0; r257set_all_with(C,_value); }/*--*/ /*ARRAY[STRING]*/void r257copy(T257* C,T0* a1){ T2 _needed_capacity=0; /*SFN*/(C->_lower/*4p*/)=(/*RF2*/(((T257*)a1))->_lower/*4p*/); /*SFN*/(C->_upper/*4p*/)=(/*RF2*/(((T257*)a1))->_upper/*4p*/); _needed_capacity=((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*4p*/)))-((/*RF2*/(C)->_lower/*4p*/))))+(INT32_C(1)); if(((int32_t)((/*RF2*/(C)->_capacity/*4p*/)))<(_needed_capacity)){ /*SFN*/(C->_storage/*4p*/)=new255(_needed_capacity); /*SFN*/(C->_capacity/*4p*/)=_needed_capacity; } if(((int32_t)(_needed_capacity))>(INT32_C(0))){ r255copy_from((/*RF2*/(C)->_storage/*4p*/),(/*RF2*/(((T257*)a1))->_storage/*4p*/),((int32_t)(_needed_capacity))-(INT32_C(1))); } }/*--*/ /*ARRAY[STRING]*/void r257set_all_with(T257* C,T0* a1){ r255set_all_with((/*RF2*/(C)->_storage/*4p*/),a1,((int32_t)((/*RF2*/(C)->_upper/*4p*/)))-((/*RF2*/(C)->_lower/*4p*/))); }/*--*/ /*ARRAY[STRING]*/T0* r257twin(T257* C){ T0* R=(void*)0; R=(void*)new257(); r257copy(((T257*)R),((T0*)C)); return R; }/*--*/ /*ARRAY[STRING]*/void r257clear_count(T257* C){ /*SFN*/(C->_upper/*4p*/)=((int32_t)((/*RF2*/(C)->_lower/*4p*/)))-(INT32_C(1)); }/*--*/ /*ARRAY[STRING]*/void r257remove_last(T257* C){ /*SFN*/(C->_upper/*4p*/)=((int32_t)((/*RF2*/(C)->_upper/*4p*/)))-(INT32_C(1)); }/*--*/ /*ARRAY[STRING]*/void r257add_last(T257* C,T0* a1){ T2 _new_capacity=0; if(((int32_t)((/*RF2*/(C)->_capacity/*4p*/)))<(((int32_t)(r257count(C)))+(INT32_C(1)))){ if(((/*RF2*/(C)->_capacity/*4p*/))==(INT8_C(0))){ _new_capacity=INT32_C(16); /*SFN*/(C->_storage/*4p*/)=new255(_new_capacity); /*SFN*/(C->_capacity/*4p*/)=_new_capacity; } else{ _new_capacity=((int32_t)((/*RF2*/(C)->_capacity/*4p*/)))*(INT32_C(2)); /*SFN*/(C->_storage/*4p*/)=r255realloc((/*RF2*/(C)->_storage/*4p*/),(/*RF2*/(C)->_capacity/*4p*/),_new_capacity); /*SFN*/(C->_capacity/*4p*/)=_new_capacity; } } /*SFN*/(C->_upper/*4p*/)=((int32_t)((/*RF2*/(C)->_upper/*4p*/)))+(INT32_C(1)); r257put(C,a1,(/*RF2*/(C)->_upper/*4p*/)); }/*--*/ /*ARRAY[STRING]*/void r257with_capacity(T257* C,T2 a1,T2 a2){ r257ensure_capacity_and_bounds(C,a1,a2,((int32_t)(a2))-(INT32_C(1))); }/*--*/ /*ARRAY[STRING]*/T2 r257count(T257* C){ T2 R=0; R=((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*4p*/)))-((/*RF2*/(C)->_lower/*4p*/))))+(INT32_C(1)); return R; }/*--*/ /*ARRAY[STRING]*/T0* r257last(T257* C){ T0* R=(void*)0; R=r257item(C,(/*RF2*/(C)->_upper/*4p*/)); return R; }/*--*/ /*ARRAY[STRING]*/T6 r257is_empty(T257* C){ T6 R=0; R=((T6)(((int32_t)((/*RF2*/(C)->_upper/*4p*/)))<((/*RF2*/(C)->_lower/*4p*/)))); return R; }/*--*/ /*ARRAY[STRING]*/T0* r257item(T257* C,T2 a1){ T0* R=(void*)0; R=((/*RF2*/(C)->_storage/*4p*/))[((int32_t)(a1))-((/*RF2*/(C)->_lower/*4p*/))]; return R; }/*--*/ /*ARRAY[STRING]*/void r257mark_native_arrays(T257* C){ T2 _i=0; _i=((int32_t)(r257count(C)))-(INT32_C(1)); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*4p*/)[_i]; if(NULL!=elt)gc_mark7((T7*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*ARRAY[STRING]*/void r257ensure_capacity_and_bounds(T257* C,T2 a1,T2 a2,T2 a3){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T0* _value=(void*)0; tmp0/*and then*/=((T6)((_value)==((void*)((void*)0)))); if(tmp0/*and then*/){ tmp0/*and then*/=((T6)(((int32_t)((/*RF2*/(C)->_capacity/*4p*/)))>(INT32_C(0)))); } if(tmp0/*and then*/){ r257clear_all(C); } /*SFN*/(C->_lower/*4p*/)=a2; /*SFN*/(C->_upper/*4p*/)=a3; if(((int32_t)(a1))>(INT32_C(0))){ if(((int32_t)((/*RF2*/(C)->_capacity/*4p*/)))<(a1)){ /*SFN*/(C->_storage/*4p*/)=new255(a1); /*SFN*/(C->_capacity/*4p*/)=a1; } else{ /*auto-unlock tmp0*/tmp0/*and then*/=((T6)((_value)!=((void*)((void*)0)))); if(tmp0/*and then*/){ tmp0/*and then*/=((T6)(((int32_t)(a3))>=(a2))); } if(tmp0/*and then*/){ r257clear_all(C); } } } }/*--*/ /*FAST_ARRAY[IVY_CLIENT]*/void r249copy(T249* C,T0* a1){ T2 _other_upper=0; T2 _new_capacity=0; _other_upper=(/*RF2*/(((T249*)a1))->_upper/*3p*/); if(((int32_t)(_other_upper))>=(INT32_C(0))){ _new_capacity=((int32_t)(_other_upper))+(INT32_C(1)); if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))<(_new_capacity)){ /*SFN*/(C->_storage/*3p*/)=new282(_new_capacity); /*SFN*/(C->_capacity/*3p*/)=_new_capacity; } else{ if(((int32_t)(_new_capacity))<((/*RF2*/(C)->_capacity/*3p*/))){ r282clear((/*RF2*/(C)->_storage/*3p*/),_new_capacity,((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))-(INT32_C(1))); } } r282copy_from((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(((T249*)a1))->_storage/*3p*/),_other_upper); } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ r282clear_all((/*RF2*/(C)->_storage/*3p*/),((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))-(INT32_C(1))); } } /*SFN*/(C->_upper/*3p*/)=_other_upper; }/*--*/ /*FAST_ARRAY[IVY_CLIENT]*/void r249remove(T249* C,T2 a1){ r282remove((/*RF2*/(C)->_storage/*3p*/),a1,(/*RF2*/(C)->_upper/*3p*/)); /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[IVY_CLIENT]*/void r249make(T249* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new282(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r282clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[IVY_CLIENT]*/void r249add_last(T249* C,T0* a1){ T2 _new_capacity=0; if(((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1))))<=(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))-(INT32_C(1)))){ /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } else{ if(((/*RF2*/(C)->_capacity/*3p*/))==(INT8_C(0))){ /*SFN*/(C->_storage/*3p*/)=new282(INT32_C(2)); /*SFN*/(C->_capacity/*3p*/)=INT32_C(2); /*SFN*/(C->_upper/*3p*/)=INT32_C(0); } else{ _new_capacity=((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))*(INT32_C(2)); /*SFN*/(C->_storage/*3p*/)=r282realloc((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_capacity/*3p*/),_new_capacity); /*SFN*/(C->_capacity/*3p*/)=_new_capacity; /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } } ((/*RF2*/(C)->_storage/*3p*/))[(/*RF2*/(C)->_upper/*3p*/)]=(a1); }/*--*/ /*FAST_ARRAY[IVY_CLIENT]*/void r249mark_native_arrays(T249* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; if(NULL!=elt)gc_mark153((T153*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*FAST_ARRAY[IVY_CLIENT]*/T2 r249fast_index_of(T249* C,T0* a1,T2 a2){ T2 R=0; if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ R=r282fast_index_of((/*RF2*/(C)->_storage/*3p*/),a1,a2,(/*RF2*/(C)->_upper/*3p*/)); } return R; }/*--*/ /*FAST_ARRAY[LOOP_ITEM]*/void r248remove_last(T248* C){ /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[LOOP_ITEM]*/void r248make(T248* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new281(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r281clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[LOOP_ITEM]*/void r248add_last(T248* C,T0* a1){ T2 _new_capacity=0; if(((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1))))<=(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))-(INT32_C(1)))){ /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } else{ if(((/*RF2*/(C)->_capacity/*3p*/))==(INT8_C(0))){ /*SFN*/(C->_storage/*3p*/)=new281(INT32_C(2)); /*SFN*/(C->_capacity/*3p*/)=INT32_C(2); /*SFN*/(C->_upper/*3p*/)=INT32_C(0); } else{ _new_capacity=((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))*(INT32_C(2)); /*SFN*/(C->_storage/*3p*/)=r281realloc((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_capacity/*3p*/),_new_capacity); /*SFN*/(C->_capacity/*3p*/)=_new_capacity; /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } } ((/*RF2*/(C)->_storage/*3p*/))[(/*RF2*/(C)->_upper/*3p*/)]=(a1); }/*--*/ /*FAST_ARRAY[LOOP_ITEM]*/T0* r248last(T248* C){ T0* R=(void*)0; R=((/*RF2*/(C)->_storage/*3p*/))[(/*RF2*/(C)->_upper/*3p*/)]; return R; }/*--*/ /*FAST_ARRAY[LOOP_ITEM]*/T6 r248is_empty(T248* C){ T6 R=0; R=((T6)(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))<(INT32_C(0)))); return R; }/*--*/ /*FAST_ARRAY[LOOP_ITEM]*/void r248mark_native_arrays(T248* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; if(NULL!=elt)gc_mark155((T155*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*FAST_ARRAY[X_INPUT_DEVICE]*/void r247make(T247* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new264(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r264clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[X_INPUT_DEVICE]*/void r247mark_native_arrays(T247* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; if(NULL!=elt)gc_mark68((T68*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*FAST_ARRAY[STRING]*/void r244make(T244* C,T2 a1){ if(((int32_t)(a1))>((/*RF2*/(C)->_capacity/*3p*/))){ /*SFN*/(C->_storage/*3p*/)=new255(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(INT32_C(0))){ /*SFN*/(C->_upper/*3p*/)=r2max((/*RF2*/(C)->_upper/*3p*/),((int32_t)(a1))-(INT32_C(1))); if(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))>=(INT32_C(0))){ r255clear_all((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_upper/*3p*/)); } } } /*SFN*/(C->_upper/*3p*/)=((int32_t)(a1))-(INT32_C(1)); }/*--*/ /*FAST_ARRAY[STRING]*/void r244add_last(T244* C,T0* a1){ T2 _new_capacity=0; if(((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1))))<=(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))-(INT32_C(1)))){ /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } else{ if(((/*RF2*/(C)->_capacity/*3p*/))==(INT8_C(0))){ /*SFN*/(C->_storage/*3p*/)=new255(INT32_C(2)); /*SFN*/(C->_capacity/*3p*/)=INT32_C(2); /*SFN*/(C->_upper/*3p*/)=INT32_C(0); } else{ _new_capacity=((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))*(INT32_C(2)); /*SFN*/(C->_storage/*3p*/)=r255realloc((/*RF2*/(C)->_storage/*3p*/),(/*RF2*/(C)->_capacity/*3p*/),_new_capacity); /*SFN*/(C->_capacity/*3p*/)=_new_capacity; /*SFN*/(C->_upper/*3p*/)=((int32_t)((/*RF2*/(C)->_upper/*3p*/)))+(INT32_C(1)); } } ((/*RF2*/(C)->_storage/*3p*/))[(/*RF2*/(C)->_upper/*3p*/)]=(a1); }/*--*/ /*FAST_ARRAY[STRING]*/void r244with_capacity(T244* C,T2 a1){ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))<(a1)){ /*SFN*/(C->_storage/*3p*/)=new255(a1); /*SFN*/(C->_capacity/*3p*/)=a1; } else{ if(((int32_t)((/*RF2*/(C)->_capacity/*3p*/)))>(a1)){ r255clear((/*RF2*/(C)->_storage/*3p*/),INT32_C(0),(/*RF2*/(C)->_upper/*3p*/)); } } /*SFN*/(C->_upper/*3p*/)=INT32_C(-1); }/*--*/ /*FAST_ARRAY[STRING]*/void r244mark_native_arrays(T244* C){ T2 _i=0; _i=(/*RF2*/(C)->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { {/*mark_item*/ T0* elt=(/*RF2*/(C)->_storage/*3p*/)[_i]; if(NULL!=elt)gc_mark7((T7*)(elt)); /*mark_item*/}_i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*WEAK_REFERENCE[HASHED_DICTIONARY_NODE[SENSITIVE,POINTER]]*/void r329set_item(T329* C,T0* a1){ /*SFN*/(C->_item/*ip*/)=a1; }/*--*/ /*HASHED_DICTIONARY_NODE[SENSITIVE,POINTER]*/void r327make(T327* C,T0* a1,T8 a2,T0* a3){ /*SFN*/(C->_item/*3p*/)=a1; /*SFN*/(C->_key/*3p*/)=a2; /*SFN*/(C->_next/*3p*/)=a3; }/*--*/ /*WEAK_REFERENCE[HASHED_DICTIONARY_NODE[SIGNAL_0,SENSITIVE]]*/void r326set_item(T326* C,T0* a1){ /*SFN*/(C->_item/*ip*/)=a1; }/*--*/ /*WEAK_REFERENCE[HASHED_DICTIONARY_NODE[SIGNAL_2[INTEGER_32,INTEGER_32],SENSITIVE]]*/void r317set_item(T317* C,T0* a1){ /*SFN*/(C->_item/*ip*/)=a1; }/*--*/ /*WEAK_REFERENCE[HASHED_DICTIONARY_NODE[SIGNAL_4[INTEGER_32,INTEGER_32,INTEGER_32,INTEGER_32],SENSITIVE]]*/void r311set_item(T311* C,T0* a1){ /*SFN*/(C->_item/*ip*/)=a1; }/*--*/ /*WEAK_REFERENCE[HASHED_DICTIONARY_NODE[EXTENSION_DEVICE,INTEGER_32]]*/void r308set_item(T308* C,T0* a1){ /*SFN*/(C->_item/*ip*/)=a1; }/*--*/ /*HASHED_DICTIONARY_NODE[EXTENSION_DEVICE,INTEGER_32]*/void r307make(T307* C,T0* a1,T2 a2,T0* a3){ /*SFN*/(C->_item/*3p*/)=a1; /*SFN*/(C->_key/*3p*/)=a2; /*SFN*/(C->_next/*3p*/)=a3; }/*--*/ /*WEAK_REFERENCE[HASHED_DICTIONARY_NODE[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]]*/void r302set_item(T302* C,T0* a1){ /*SFN*/(C->_item/*ip*/)=a1; }/*--*/ /*HASHED_DICTIONARY_NODE[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]*/void r300make(T300* C,T0* a1,T0* a2,T0* a3){ /*SFN*/(C->_item/*3p*/)=a1; /*SFN*/(C->_key/*3p*/)=a2; /*SFN*/(C->_next/*3p*/)=a3; }/*--*/ /*WEAK_REFERENCE[HASHED_DICTIONARY_NODE[INTEGER_32,INTEGER_32]]*/void r297set_item(T297* C,T0* a1){ /*SFN*/(C->_item/*ip*/)=a1; }/*--*/ /*HASHED_DICTIONARY_NODE[INTEGER_32,INTEGER_32]*/void r296make(T296* C,T2 a1,T2 a2,T0* a3){ /*SFN*/(C->_item/*3p*/)=a1; /*SFN*/(C->_key/*3p*/)=a2; /*SFN*/(C->_next/*3p*/)=a3; }/*--*/ /*WEAK_REFERENCE[HASHED_DICTIONARY_NODE[POINTER,STRING]]*/void r293set_item(T293* C,T0* a1){ /*SFN*/(C->_item/*ip*/)=a1; }/*--*/ /*HASHED_DICTIONARY_NODE[POINTER,STRING]*/void r292make(T292* C,T8 a1,T0* a2,T0* a3){ /*SFN*/(C->_item/*3p*/)=a1; /*SFN*/(C->_key/*3p*/)=a2; /*SFN*/(C->_next/*3p*/)=a3; }/*--*/ /*HASHED_DICTIONARY_NODE[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]*/void r290make(T290* C,T0* a1,T0* a2,T0* a3){ /*SFN*/(C->_item/*3p*/)=a1; /*SFN*/(C->_key/*3p*/)=a2; /*SFN*/(C->_next/*3p*/)=a3; }/*--*/ /*WEAK_REFERENCE[HASHED_DICTIONARY_NODE[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]]*/void r289set_item(T289* C,T0* a1){ /*SFN*/(C->_item/*ip*/)=a1; }/*--*/ /*HASHED_DICTIONARY[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]*/T0* r288fast_reference_at(T288* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; T2 _idx=0; T0* _node=(void*)0; _idx=((int32_t)(r7hash_code(((T7*)a1))))%((/*RF2*/(C)->_capacity/*5p*/)); _node=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; while(1){ tmp0/*or else*/=((T6)((_node)==((void*)((void*)0)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(((/*RF2*/(((T290*)_node))->_key/*3p*/))==((void*)(a1)))); } if(tmp0/*or else*/){ break; } _node=(/*RF2*/(((T290*)_node))->_next/*3p*/); } if((_node)!=((void*)((void*)0))){ R=(/*RF2*/(((T290*)_node))->_item/*3p*/); } return R; }/*--*/ /*HASHED_DICTIONARY[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]*/T2 r288prime_capacity(T2 a1){ T2 R=0; R=(int32_t)(((uint32_t)(a1))+((uint32_t)(((int32_t)(a1))/(INT32_C(2))))); if(((int32_t)(R))>(INT32_C(0))){ R=r288prime_number_ceiling(R); } else{ R=r288prime_number_ceiling(INT32_C(2147483647)); } return R; }/*--*/ /*HASHED_DICTIONARY[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]*/T2 r288prime_number_ceiling(T2 a1){ T2 R=0; if(((int32_t)(a1))<=(INT32_C(98317))){ if(((int32_t)(a1))<=(INT32_C(769))){ if(((int32_t)(a1))<=(INT32_C(53))){ if(((int32_t)(a1))<=(INT32_C(11))){ R=INT32_C(11); } else{ if(((int32_t)(a1))<=(INT32_C(23))){ R=INT32_C(23); } else{ R=INT32_C(53); } } } else{ if(((int32_t)(a1))<=(INT32_C(193))){ if(((int32_t)(a1))<=(INT32_C(97))){ R=INT32_C(97); } else{ R=INT32_C(193); } } else{ if(((int32_t)(a1))<=(INT32_C(389))){ R=INT32_C(389); } else{ R=INT32_C(769); } } } } else{ if(((int32_t)(a1))<=(INT32_C(12289))){ if(((int32_t)(a1))<=(INT32_C(3079))){ if(((int32_t)(a1))<=(INT32_C(1543))){ R=INT32_C(1543); } else{ R=INT32_C(3079); } } else{ if(((int32_t)(a1))<=(INT32_C(6151))){ R=INT32_C(6151); } else{ R=INT32_C(12289); } } } else{ if(((int32_t)(a1))<=(INT32_C(24593))){ R=INT32_C(24593); } else{ if(((int32_t)(a1))<=(INT32_C(49157))){ R=INT32_C(49157); } else{ R=INT32_C(98317); } } } } } else{ if(((int32_t)(a1))<=(INT32_C(12582917))){ if(((int32_t)(a1))<=(INT32_C(1572869))){ if(((int32_t)(a1))<=(INT32_C(393241))){ if(((int32_t)(a1))<=(INT32_C(196613))){ R=INT32_C(196613); } else{ R=INT32_C(393241); } } else{ if(((int32_t)(a1))<=(INT32_C(786433))){ R=INT32_C(786433); } else{ R=INT32_C(1572869); } } } else{ if(((int32_t)(a1))<=(INT32_C(3145739))){ R=INT32_C(3145739); } else{ if(((int32_t)(a1))<=(INT32_C(6291469))){ R=INT32_C(6291469); } else{ R=INT32_C(12582917); } } } } else{ if(((int32_t)(a1))<=(INT32_C(201326611))){ if(((int32_t)(a1))<=(INT32_C(50331653))){ if(((int32_t)(a1))<=(INT32_C(25165843))){ R=INT32_C(25165843); } else{ R=INT32_C(50331653); } } else{ if(((int32_t)(a1))<=(INT32_C(100663319))){ R=INT32_C(100663319); } else{ R=INT32_C(201326611); } } } else{ if(((int32_t)(a1))<=(INT32_C(805306457))){ if(((int32_t)(a1))<=(INT32_C(402653189))){ R=INT32_C(402653189); } else{ R=INT32_C(805306457); } } else{ if(((int32_t)(a1))<=(INT32_C(1610612741))){ R=INT32_C(1610612741); } else{ R=INT32_C(2147483647); } } } } } return R; }/*--*/ /*HASHED_DICTIONARY[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]*/T6 r288should_increase_capacity(T2 a1,T2 a2){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; tmp0/*and then*/=((T6)(((int32_t)(a2))>((int32_t)(((uint32_t)(((int32_t)(a1))/(INT32_C(3))))*((uint32_t)(INT32_C(2))))))); if(tmp0/*and then*/){ tmp0/*and then*/=((T6)(((int32_t)(a1))<(INT32_C(2147483647)))); } R=((T6)(tmp0/*and then*/)); return R; }/*--*/ /*HASHED_DICTIONARY[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]*/T0* r288new_node(T288* C,T0* a1,T0* a2,T0* a3){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; R=(/*RF2*/((T289*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/); if((R)==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new290())); r290make(((T290*)tmp0/*new*/),a1,a2,a3); R=tmp0/*new*/; /*tmp0.unlock*/ } else{ (/*RF2*/((T289*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/)=(/*RF2*/(((T290*)R))->_next/*3p*/); r290make(((T290*)R),a1,a2,a3); } return R; }/*--*/ /*HASHED_DICTIONARY[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]*/void r288special_common_dictionary(T288* C,T0* a1){ T2 _new_capacity=0; _new_capacity=INT32_C(53); /*SFN*/(C->_buckets/*5p*/)=new333(_new_capacity); /*SFN*/(C->_capacity/*5p*/)=_new_capacity; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); /*SFN*/(C->_count/*5p*/)=INT32_C(0); /*SFN*/(C->_free_nodes/*5p*/)=a1; }/*--*/ /*HASHED_DICTIONARY[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]*/void r288increase_capacity(T288* C){ T2 _i=0; T2 _idx=0; T2 _new_capacity=0; T333 _old_buckets=(void*)0; T0* _node1=(void*)0; T0* _node2=(void*)0; _new_capacity=r288prime_capacity(((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))+(INT32_C(1))); _old_buckets=(/*RF2*/(C)->_buckets/*5p*/); /*SFN*/(C->_buckets/*5p*/)=new333(_new_capacity); _i=((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))-(INT32_C(1)); /*SFN*/(C->_capacity/*5p*/)=_new_capacity; while(!(((int32_t)(_i))<(INT32_C(0)))) { _node1=(_old_buckets)[_i]; while(!((_node1)==((void*)((void*)0)))) { _node2=(/*RF2*/(((T290*)_node1))->_next/*3p*/); _idx=((int32_t)(r7hash_code((T7*)((/*RF2*/(((T290*)_node1))->_key/*3p*/)))))%((/*RF2*/(C)->_capacity/*5p*/)); (/*RF2*/(((T290*)_node1))->_next/*3p*/)=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node1); _node1=_node2; } _i=((int32_t)(_i))-(INT32_C(1)); } /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); }/*--*/ /*HASHED_DICTIONARY[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]*/void r288add(T288* C,T0* a1,T0* a2){ T2 _idx=0; T0* _node=(void*)0; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); if(r288should_increase_capacity((/*RF2*/(C)->_capacity/*5p*/),(/*RF2*/(C)->_count/*5p*/))){ r288increase_capacity(C); } _idx=((int32_t)(r7hash_code(((T7*)a2))))%((/*RF2*/(C)->_capacity/*5p*/)); _node=r288new_node(C,a1,a2,((/*RF2*/(C)->_buckets/*5p*/))[_idx]); ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node); /*SFN*/(C->_count/*5p*/)=((int32_t)((/*RF2*/(C)->_count/*5p*/)))+(INT32_C(1)); }/*--*/ /*WEAK_REFERENCE[HASHED_DICTIONARY_NODE[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]]*/void r287set_item(T287* C,T0* a1){ /*SFN*/(C->_item/*ip*/)=a1; }/*--*/ /*HASHED_DICTIONARY_NODE[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]*/void r284make(T284* C,T0* a1,T0* a2,T0* a3){ /*SFN*/(C->_item/*3p*/)=a1; /*SFN*/(C->_key/*3p*/)=a2; /*SFN*/(C->_next/*3p*/)=a3; }/*--*/ /*HASHED_DICTIONARY[SENSITIVE,POINTER]*/T0* r276reference_at(T276* C,T8 a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; T2 _idx=0; T0* _node=(void*)0; _idx=((int32_t)(r8hash_code(a1)))%((/*RF2*/(C)->_capacity/*5p*/)); _node=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; while(1){ tmp0/*or else*/=((T6)((_node)==((void*)((void*)0)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(r276key_safe_equal((/*RF2*/(((T327*)_node))->_key/*3p*/),a1))); } if(tmp0/*or else*/){ break; } _node=(/*RF2*/(((T327*)_node))->_next/*3p*/); } if((_node)!=((void*)((void*)0))){ R=(/*RF2*/(((T327*)_node))->_item/*3p*/); } return R; }/*--*/ /*HASHED_DICTIONARY[SENSITIVE,POINTER]*/void r276make(T276* C){ r276create_with_capacity(C,INT32_C(53)); }/*--*/ /*HASHED_DICTIONARY[SENSITIVE,POINTER]*/T6 r276key_safe_equal(T8 a1,T8 a2){ T6 R=0; if((a1)==(a2)){ R=((T6)(1)); } else{ R=((T6)((a1)==(a2))); } return R; }/*--*/ /*HASHED_DICTIONARY[SENSITIVE,POINTER]*/T2 r276prime_capacity(T2 a1){ T2 R=0; R=(int32_t)(((uint32_t)(a1))+((uint32_t)(((int32_t)(a1))/(INT32_C(2))))); if(((int32_t)(R))>(INT32_C(0))){ R=r276prime_number_ceiling(R); } else{ R=r276prime_number_ceiling(INT32_C(2147483647)); } return R; }/*--*/ /*HASHED_DICTIONARY[SENSITIVE,POINTER]*/T2 r276prime_number_ceiling(T2 a1){ T2 R=0; if(((int32_t)(a1))<=(INT32_C(98317))){ if(((int32_t)(a1))<=(INT32_C(769))){ if(((int32_t)(a1))<=(INT32_C(53))){ if(((int32_t)(a1))<=(INT32_C(11))){ R=INT32_C(11); } else{ if(((int32_t)(a1))<=(INT32_C(23))){ R=INT32_C(23); } else{ R=INT32_C(53); } } } else{ if(((int32_t)(a1))<=(INT32_C(193))){ if(((int32_t)(a1))<=(INT32_C(97))){ R=INT32_C(97); } else{ R=INT32_C(193); } } else{ if(((int32_t)(a1))<=(INT32_C(389))){ R=INT32_C(389); } else{ R=INT32_C(769); } } } } else{ if(((int32_t)(a1))<=(INT32_C(12289))){ if(((int32_t)(a1))<=(INT32_C(3079))){ if(((int32_t)(a1))<=(INT32_C(1543))){ R=INT32_C(1543); } else{ R=INT32_C(3079); } } else{ if(((int32_t)(a1))<=(INT32_C(6151))){ R=INT32_C(6151); } else{ R=INT32_C(12289); } } } else{ if(((int32_t)(a1))<=(INT32_C(24593))){ R=INT32_C(24593); } else{ if(((int32_t)(a1))<=(INT32_C(49157))){ R=INT32_C(49157); } else{ R=INT32_C(98317); } } } } } else{ if(((int32_t)(a1))<=(INT32_C(12582917))){ if(((int32_t)(a1))<=(INT32_C(1572869))){ if(((int32_t)(a1))<=(INT32_C(393241))){ if(((int32_t)(a1))<=(INT32_C(196613))){ R=INT32_C(196613); } else{ R=INT32_C(393241); } } else{ if(((int32_t)(a1))<=(INT32_C(786433))){ R=INT32_C(786433); } else{ R=INT32_C(1572869); } } } else{ if(((int32_t)(a1))<=(INT32_C(3145739))){ R=INT32_C(3145739); } else{ if(((int32_t)(a1))<=(INT32_C(6291469))){ R=INT32_C(6291469); } else{ R=INT32_C(12582917); } } } } else{ if(((int32_t)(a1))<=(INT32_C(201326611))){ if(((int32_t)(a1))<=(INT32_C(50331653))){ if(((int32_t)(a1))<=(INT32_C(25165843))){ R=INT32_C(25165843); } else{ R=INT32_C(50331653); } } else{ if(((int32_t)(a1))<=(INT32_C(100663319))){ R=INT32_C(100663319); } else{ R=INT32_C(201326611); } } } else{ if(((int32_t)(a1))<=(INT32_C(805306457))){ if(((int32_t)(a1))<=(INT32_C(402653189))){ R=INT32_C(402653189); } else{ R=INT32_C(805306457); } } else{ if(((int32_t)(a1))<=(INT32_C(1610612741))){ R=INT32_C(1610612741); } else{ R=INT32_C(2147483647); } } } } } return R; }/*--*/ /*HASHED_DICTIONARY[SENSITIVE,POINTER]*/T6 r276should_increase_capacity(T2 a1,T2 a2){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; tmp0/*and then*/=((T6)(((int32_t)(a2))>((int32_t)(((uint32_t)(((int32_t)(a1))/(INT32_C(3))))*((uint32_t)(INT32_C(2))))))); if(tmp0/*and then*/){ tmp0/*and then*/=((T6)(((int32_t)(a1))<(INT32_C(2147483647)))); } R=((T6)(tmp0/*and then*/)); return R; }/*--*/ T0*oBC143common_free_nodes=(void*)0; int fBC143common_free_nodes=0; /*HASHED_DICTIONARY[SENSITIVE,POINTER]*/T0* r276common_free_nodes(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* _fn=(void*)0; if(fBC143common_free_nodes==0){fBC143common_free_nodes=1;{ tmp0/*new*/=((T0*)(new289())); r289set_item(((T289*)tmp0/*new*/),(void*)0); _fn=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new288())); r288special_common_dictionary(((T288*)tmp0/*new*/),_fn); oBC143common_free_nodes=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/oBC143common_free_nodes),_fn,(T0*)(t[288])); }} return oBC143common_free_nodes; }/*--*/ /*HASHED_DICTIONARY[SENSITIVE,POINTER]*/T0* r276new_node(T276* C,T0* a1,T8 a2,T0* a3){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; R=(/*RF2*/((T329*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/); if((R)==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new327())); r327make(((T327*)tmp0/*new*/),a1,a2,a3); R=tmp0/*new*/; /*tmp0.unlock*/ } else{ (/*RF2*/((T329*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/)=(/*RF2*/(((T327*)R))->_next/*3p*/); r327make(((T327*)R),a1,a2,a3); } return R; }/*--*/ /*HASHED_DICTIONARY[SENSITIVE,POINTER]*/void r276create_with_capacity(T276* C,T2 a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ /*SFN*/(C->_free_nodes/*5p*/)=r288fast_reference_at(((T288*)/*no_dispatch.e*/r276common_free_nodes()),(T0*)(t[276])); if(((/*RF2*/(C)->_free_nodes/*5p*/))==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new329())); r329set_item(((T329*)tmp0/*new*/),(void*)0); /*SFN*/(C->_free_nodes/*5p*/)=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/r276common_free_nodes()),(/*RF2*/(C)->_free_nodes/*5p*/),(T0*)(t[276])); } /*SFN*/(C->_buckets/*5p*/)=new328(a1); /*SFN*/(C->_capacity/*5p*/)=a1; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); /*SFN*/(C->_count/*5p*/)=INT32_C(0); }/*--*/ /*HASHED_DICTIONARY[SENSITIVE,POINTER]*/void r276increase_capacity(T276* C){ T2 _i=0; T2 _idx=0; T2 _new_capacity=0; T328 _old_buckets=(void*)0; T0* _node1=(void*)0; T0* _node2=(void*)0; _new_capacity=r276prime_capacity(((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))+(INT32_C(1))); _old_buckets=(/*RF2*/(C)->_buckets/*5p*/); /*SFN*/(C->_buckets/*5p*/)=new328(_new_capacity); _i=((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))-(INT32_C(1)); /*SFN*/(C->_capacity/*5p*/)=_new_capacity; while(!(((int32_t)(_i))<(INT32_C(0)))) { _node1=(_old_buckets)[_i]; while(!((_node1)==((void*)((void*)0)))) { _node2=(/*RF2*/(((T327*)_node1))->_next/*3p*/); _idx=((int32_t)(r8hash_code((/*RF2*/(((T327*)_node1))->_key/*3p*/))))%((/*RF2*/(C)->_capacity/*5p*/)); (/*RF2*/(((T327*)_node1))->_next/*3p*/)=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node1); _node1=_node2; } _i=((int32_t)(_i))-(INT32_C(1)); } /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); }/*--*/ /*HASHED_DICTIONARY[SENSITIVE,POINTER]*/void r276add(T276* C,T0* a1,T8 a2){ T2 _idx=0; T0* _node=(void*)0; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); if(r276should_increase_capacity((/*RF2*/(C)->_capacity/*5p*/),(/*RF2*/(C)->_count/*5p*/))){ r276increase_capacity(C); } _idx=((int32_t)(r8hash_code(a2)))%((/*RF2*/(C)->_capacity/*5p*/)); _node=r276new_node(C,a1,a2,((/*RF2*/(C)->_buckets/*5p*/))[_idx]); ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node); /*SFN*/(C->_count/*5p*/)=((int32_t)((/*RF2*/(C)->_count/*5p*/)))+(INT32_C(1)); }/*--*/ /*HASHED_DICTIONARY[SIGNAL_0,SENSITIVE]*/T0* r275reference_at(T275* C,T0* a1){ T0* R=(void*)0; T2 _idx=0; T0* _node=(void*)0; _idx=((int32_t)(r73hash_code(((T73*)/*no_dispatch.e*/a1))))%((/*RF2*/(C)->_capacity/*5p*/)); _node=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; return R; }/*--*/ /*HASHED_DICTIONARY[SIGNAL_0,SENSITIVE]*/void r275make(T275* C){ r275create_with_capacity(C,INT32_C(53)); }/*--*/ /*HASHED_DICTIONARY[SIGNAL_0,SENSITIVE]*/T0* r275common_free_nodes(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* _fn=(void*)0; if(fBC143common_free_nodes==0){fBC143common_free_nodes=1;{ tmp0/*new*/=((T0*)(new289())); r289set_item(((T289*)tmp0/*new*/),(void*)0); _fn=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new288())); r288special_common_dictionary(((T288*)tmp0/*new*/),_fn); oBC143common_free_nodes=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/oBC143common_free_nodes),_fn,(T0*)(t[288])); }} return oBC143common_free_nodes; }/*--*/ /*HASHED_DICTIONARY[SIGNAL_0,SENSITIVE]*/void r275create_with_capacity(T275* C,T2 a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ /*SFN*/(C->_free_nodes/*5p*/)=r288fast_reference_at(((T288*)/*no_dispatch.e*/r275common_free_nodes()),(T0*)(t[275])); if(((/*RF2*/(C)->_free_nodes/*5p*/))==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new326())); r326set_item(((T326*)tmp0/*new*/),(void*)0); /*SFN*/(C->_free_nodes/*5p*/)=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/r275common_free_nodes()),(/*RF2*/(C)->_free_nodes/*5p*/),(T0*)(t[275])); } /*SFN*/(C->_buckets/*5p*/)=new324(a1); /*SFN*/(C->_capacity/*5p*/)=a1; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); /*SFN*/(C->_count/*5p*/)=INT32_C(0); }/*--*/ /*HASHED_DICTIONARY[SIGNAL_2[INTEGER_32,INTEGER_32],SENSITIVE]*/T0* r271reference_at(T271* C,T0* a1){ T0* R=(void*)0; T2 _idx=0; T0* _node=(void*)0; _idx=((int32_t)(r73hash_code(((T73*)/*no_dispatch.e*/a1))))%((/*RF2*/(C)->_capacity/*5p*/)); _node=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; return R; }/*--*/ /*HASHED_DICTIONARY[SIGNAL_2[INTEGER_32,INTEGER_32],SENSITIVE]*/void r271make(T271* C){ r271create_with_capacity(C,INT32_C(53)); }/*--*/ /*HASHED_DICTIONARY[SIGNAL_2[INTEGER_32,INTEGER_32],SENSITIVE]*/T0* r271common_free_nodes(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* _fn=(void*)0; if(fBC143common_free_nodes==0){fBC143common_free_nodes=1;{ tmp0/*new*/=((T0*)(new289())); r289set_item(((T289*)tmp0/*new*/),(void*)0); _fn=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new288())); r288special_common_dictionary(((T288*)tmp0/*new*/),_fn); oBC143common_free_nodes=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/oBC143common_free_nodes),_fn,(T0*)(t[288])); }} return oBC143common_free_nodes; }/*--*/ /*HASHED_DICTIONARY[SIGNAL_2[INTEGER_32,INTEGER_32],SENSITIVE]*/void r271create_with_capacity(T271* C,T2 a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ /*SFN*/(C->_free_nodes/*5p*/)=r288fast_reference_at(((T288*)/*no_dispatch.e*/r271common_free_nodes()),(T0*)(t[271])); if(((/*RF2*/(C)->_free_nodes/*5p*/))==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new317())); r317set_item(((T317*)tmp0/*new*/),(void*)0); /*SFN*/(C->_free_nodes/*5p*/)=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/r271common_free_nodes()),(/*RF2*/(C)->_free_nodes/*5p*/),(T0*)(t[271])); } /*SFN*/(C->_buckets/*5p*/)=new316(a1); /*SFN*/(C->_capacity/*5p*/)=a1; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); /*SFN*/(C->_count/*5p*/)=INT32_C(0); }/*--*/ /*HASHED_DICTIONARY[SIGNAL_4[INTEGER_32,INTEGER_32,INTEGER_32,INTEGER_32],SENSITIVE]*/T0* r269reference_at(T269* C,T0* a1){ T0* R=(void*)0; T2 _idx=0; T0* _node=(void*)0; _idx=((int32_t)(r73hash_code(((T73*)/*no_dispatch.e*/a1))))%((/*RF2*/(C)->_capacity/*5p*/)); _node=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; return R; }/*--*/ /*HASHED_DICTIONARY[SIGNAL_4[INTEGER_32,INTEGER_32,INTEGER_32,INTEGER_32],SENSITIVE]*/void r269make(T269* C){ r269create_with_capacity(C,INT32_C(53)); }/*--*/ /*HASHED_DICTIONARY[SIGNAL_4[INTEGER_32,INTEGER_32,INTEGER_32,INTEGER_32],SENSITIVE]*/T0* r269common_free_nodes(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* _fn=(void*)0; if(fBC143common_free_nodes==0){fBC143common_free_nodes=1;{ tmp0/*new*/=((T0*)(new289())); r289set_item(((T289*)tmp0/*new*/),(void*)0); _fn=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new288())); r288special_common_dictionary(((T288*)tmp0/*new*/),_fn); oBC143common_free_nodes=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/oBC143common_free_nodes),_fn,(T0*)(t[288])); }} return oBC143common_free_nodes; }/*--*/ /*HASHED_DICTIONARY[SIGNAL_4[INTEGER_32,INTEGER_32,INTEGER_32,INTEGER_32],SENSITIVE]*/void r269create_with_capacity(T269* C,T2 a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ /*SFN*/(C->_free_nodes/*5p*/)=r288fast_reference_at(((T288*)/*no_dispatch.e*/r269common_free_nodes()),(T0*)(t[269])); if(((/*RF2*/(C)->_free_nodes/*5p*/))==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new311())); r311set_item(((T311*)tmp0/*new*/),(void*)0); /*SFN*/(C->_free_nodes/*5p*/)=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/r269common_free_nodes()),(/*RF2*/(C)->_free_nodes/*5p*/),(T0*)(t[269])); } /*SFN*/(C->_buckets/*5p*/)=new310(a1); /*SFN*/(C->_capacity/*5p*/)=a1; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); /*SFN*/(C->_count/*5p*/)=INT32_C(0); }/*--*/ /*HASHED_DICTIONARY[EXTENSION_DEVICE,INTEGER_32]*/void r268put(T268* C,T0* a1,T2 a2){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T2 _h=0; T2 _idx=0; T0* _node=(void*)0; _h=(a2&/*0x7FFFFFFF*/INT32_C(2147483647)); _idx=((int32_t)(_h))%((/*RF2*/(C)->_capacity/*5p*/)); _node=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; while(1){ tmp0/*or else*/=((T6)((_node)==((void*)((void*)0)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(r268key_safe_equal((/*RF2*/(((T307*)_node))->_key/*3p*/),a2))); } if(tmp0/*or else*/){ break; } _node=(/*RF2*/(((T307*)_node))->_next/*3p*/); } if((_node)==((void*)((void*)0))){ if(r268should_increase_capacity((/*RF2*/(C)->_capacity/*5p*/),(/*RF2*/(C)->_count/*5p*/))){ r268increase_capacity(C); _idx=((int32_t)(_h))%((/*RF2*/(C)->_capacity/*5p*/)); } _node=r268new_node(C,a1,a2,((/*RF2*/(C)->_buckets/*5p*/))[_idx]); ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node); /*SFN*/(C->_count/*5p*/)=((int32_t)((/*RF2*/(C)->_count/*5p*/)))+(INT32_C(1)); /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); } else{ (/*RF2*/(((T307*)_node))->_item/*3p*/)=a1; } }/*--*/ /*HASHED_DICTIONARY[EXTENSION_DEVICE,INTEGER_32]*/T0* r268reference_at(T268* C,T2 a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; T2 _idx=0; T0* _node=(void*)0; _idx=((int32_t)((a1&/*0x7FFFFFFF*/INT32_C(2147483647))))%((/*RF2*/(C)->_capacity/*5p*/)); _node=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; while(1){ tmp0/*or else*/=((T6)((_node)==((void*)((void*)0)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(r268key_safe_equal((/*RF2*/(((T307*)_node))->_key/*3p*/),a1))); } if(tmp0/*or else*/){ break; } _node=(/*RF2*/(((T307*)_node))->_next/*3p*/); } if((_node)!=((void*)((void*)0))){ R=(/*RF2*/(((T307*)_node))->_item/*3p*/); } return R; }/*--*/ /*HASHED_DICTIONARY[EXTENSION_DEVICE,INTEGER_32]*/void r268make(T268* C){ r268create_with_capacity(C,INT32_C(53)); }/*--*/ /*HASHED_DICTIONARY[EXTENSION_DEVICE,INTEGER_32]*/T6 r268key_safe_equal(T2 a1,T2 a2){ T6 R=0; if((a1)==(a2)){ R=((T6)(1)); } else{ R=((T6)((a1)==(a2))); } return R; }/*--*/ /*HASHED_DICTIONARY[EXTENSION_DEVICE,INTEGER_32]*/T2 r268prime_capacity(T2 a1){ T2 R=0; R=(int32_t)(((uint32_t)(a1))+((uint32_t)(((int32_t)(a1))/(INT32_C(2))))); if(((int32_t)(R))>(INT32_C(0))){ R=r268prime_number_ceiling(R); } else{ R=r268prime_number_ceiling(INT32_C(2147483647)); } return R; }/*--*/ /*HASHED_DICTIONARY[EXTENSION_DEVICE,INTEGER_32]*/T2 r268prime_number_ceiling(T2 a1){ T2 R=0; if(((int32_t)(a1))<=(INT32_C(98317))){ if(((int32_t)(a1))<=(INT32_C(769))){ if(((int32_t)(a1))<=(INT32_C(53))){ if(((int32_t)(a1))<=(INT32_C(11))){ R=INT32_C(11); } else{ if(((int32_t)(a1))<=(INT32_C(23))){ R=INT32_C(23); } else{ R=INT32_C(53); } } } else{ if(((int32_t)(a1))<=(INT32_C(193))){ if(((int32_t)(a1))<=(INT32_C(97))){ R=INT32_C(97); } else{ R=INT32_C(193); } } else{ if(((int32_t)(a1))<=(INT32_C(389))){ R=INT32_C(389); } else{ R=INT32_C(769); } } } } else{ if(((int32_t)(a1))<=(INT32_C(12289))){ if(((int32_t)(a1))<=(INT32_C(3079))){ if(((int32_t)(a1))<=(INT32_C(1543))){ R=INT32_C(1543); } else{ R=INT32_C(3079); } } else{ if(((int32_t)(a1))<=(INT32_C(6151))){ R=INT32_C(6151); } else{ R=INT32_C(12289); } } } else{ if(((int32_t)(a1))<=(INT32_C(24593))){ R=INT32_C(24593); } else{ if(((int32_t)(a1))<=(INT32_C(49157))){ R=INT32_C(49157); } else{ R=INT32_C(98317); } } } } } else{ if(((int32_t)(a1))<=(INT32_C(12582917))){ if(((int32_t)(a1))<=(INT32_C(1572869))){ if(((int32_t)(a1))<=(INT32_C(393241))){ if(((int32_t)(a1))<=(INT32_C(196613))){ R=INT32_C(196613); } else{ R=INT32_C(393241); } } else{ if(((int32_t)(a1))<=(INT32_C(786433))){ R=INT32_C(786433); } else{ R=INT32_C(1572869); } } } else{ if(((int32_t)(a1))<=(INT32_C(3145739))){ R=INT32_C(3145739); } else{ if(((int32_t)(a1))<=(INT32_C(6291469))){ R=INT32_C(6291469); } else{ R=INT32_C(12582917); } } } } else{ if(((int32_t)(a1))<=(INT32_C(201326611))){ if(((int32_t)(a1))<=(INT32_C(50331653))){ if(((int32_t)(a1))<=(INT32_C(25165843))){ R=INT32_C(25165843); } else{ R=INT32_C(50331653); } } else{ if(((int32_t)(a1))<=(INT32_C(100663319))){ R=INT32_C(100663319); } else{ R=INT32_C(201326611); } } } else{ if(((int32_t)(a1))<=(INT32_C(805306457))){ if(((int32_t)(a1))<=(INT32_C(402653189))){ R=INT32_C(402653189); } else{ R=INT32_C(805306457); } } else{ if(((int32_t)(a1))<=(INT32_C(1610612741))){ R=INT32_C(1610612741); } else{ R=INT32_C(2147483647); } } } } } return R; }/*--*/ /*HASHED_DICTIONARY[EXTENSION_DEVICE,INTEGER_32]*/T6 r268should_increase_capacity(T2 a1,T2 a2){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; tmp0/*and then*/=((T6)(((int32_t)(a2))>((int32_t)(((uint32_t)(((int32_t)(a1))/(INT32_C(3))))*((uint32_t)(INT32_C(2))))))); if(tmp0/*and then*/){ tmp0/*and then*/=((T6)(((int32_t)(a1))<(INT32_C(2147483647)))); } R=((T6)(tmp0/*and then*/)); return R; }/*--*/ /*HASHED_DICTIONARY[EXTENSION_DEVICE,INTEGER_32]*/T0* r268common_free_nodes(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* _fn=(void*)0; if(fBC143common_free_nodes==0){fBC143common_free_nodes=1;{ tmp0/*new*/=((T0*)(new289())); r289set_item(((T289*)tmp0/*new*/),(void*)0); _fn=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new288())); r288special_common_dictionary(((T288*)tmp0/*new*/),_fn); oBC143common_free_nodes=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/oBC143common_free_nodes),_fn,(T0*)(t[288])); }} return oBC143common_free_nodes; }/*--*/ /*HASHED_DICTIONARY[EXTENSION_DEVICE,INTEGER_32]*/T0* r268new_node(T268* C,T0* a1,T2 a2,T0* a3){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; R=(/*RF2*/((T308*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/); if((R)==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new307())); r307make(((T307*)tmp0/*new*/),a1,a2,a3); R=tmp0/*new*/; /*tmp0.unlock*/ } else{ (/*RF2*/((T308*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/)=(/*RF2*/(((T307*)R))->_next/*3p*/); r307make(((T307*)R),a1,a2,a3); } return R; }/*--*/ /*HASHED_DICTIONARY[EXTENSION_DEVICE,INTEGER_32]*/void r268create_with_capacity(T268* C,T2 a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ /*SFN*/(C->_free_nodes/*5p*/)=r288fast_reference_at(((T288*)/*no_dispatch.e*/r268common_free_nodes()),(T0*)(t[268])); if(((/*RF2*/(C)->_free_nodes/*5p*/))==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new308())); r308set_item(((T308*)tmp0/*new*/),(void*)0); /*SFN*/(C->_free_nodes/*5p*/)=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/r268common_free_nodes()),(/*RF2*/(C)->_free_nodes/*5p*/),(T0*)(t[268])); } /*SFN*/(C->_buckets/*5p*/)=new306(a1); /*SFN*/(C->_capacity/*5p*/)=a1; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); /*SFN*/(C->_count/*5p*/)=INT32_C(0); }/*--*/ /*HASHED_DICTIONARY[EXTENSION_DEVICE,INTEGER_32]*/void r268increase_capacity(T268* C){ T2 _i=0; T2 _idx=0; T2 _new_capacity=0; T306 _old_buckets=(void*)0; T0* _node1=(void*)0; T0* _node2=(void*)0; _new_capacity=r268prime_capacity(((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))+(INT32_C(1))); _old_buckets=(/*RF2*/(C)->_buckets/*5p*/); /*SFN*/(C->_buckets/*5p*/)=new306(_new_capacity); _i=((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))-(INT32_C(1)); /*SFN*/(C->_capacity/*5p*/)=_new_capacity; while(!(((int32_t)(_i))<(INT32_C(0)))) { _node1=(_old_buckets)[_i]; while(!((_node1)==((void*)((void*)0)))) { _node2=(/*RF2*/(((T307*)_node1))->_next/*3p*/); _idx=((int32_t)(((/*RF2*/(((T307*)_node1))->_key/*3p*/)&/*0x7FFFFFFF*/INT32_C(2147483647))))%((/*RF2*/(C)->_capacity/*5p*/)); (/*RF2*/(((T307*)_node1))->_next/*3p*/)=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node1); _node1=_node2; } _i=((int32_t)(_i))-(INT32_C(1)); } /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); }/*--*/ /*HASHED_DICTIONARY[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]*/void r263make(T263* C){ r263create_with_capacity(C,INT32_C(53)); }/*--*/ /*HASHED_DICTIONARY[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]*/T0* r263reference_at(T263* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; T2 _idx=0; T0* _node=(void*)0; _idx=((int32_t)(r73hash_code(((T73*)/*no_dispatch.e*/a1))))%((/*RF2*/(C)->_capacity/*5p*/)); _node=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; while(1){ tmp0/*or else*/=((T6)((_node)==((void*)((void*)0)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(r263key_safe_equal((/*RF2*/(((T300*)_node))->_key/*3p*/),a1))); } if(tmp0/*or else*/){ break; } _node=(/*RF2*/(((T300*)_node))->_next/*3p*/); } if((_node)!=((void*)((void*)0))){ R=(/*RF2*/(((T300*)_node))->_item/*3p*/); } return R; }/*--*/ /*HASHED_DICTIONARY[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]*/T6 r263key_safe_equal(T0* a1,T0* a2){ T6 R=0; if((a1)==((void*)(a2))){ R=((T6)(1)); } else{ R=((T6)(!memcmp(((T73*)/*no_dispatch.e*/a1),(a2),sizeof(T73)))); } return R; }/*--*/ /*HASHED_DICTIONARY[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]*/T2 r263prime_capacity(T2 a1){ T2 R=0; R=(int32_t)(((uint32_t)(a1))+((uint32_t)(((int32_t)(a1))/(INT32_C(2))))); if(((int32_t)(R))>(INT32_C(0))){ R=r263prime_number_ceiling(R); } else{ R=r263prime_number_ceiling(INT32_C(2147483647)); } return R; }/*--*/ /*HASHED_DICTIONARY[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]*/T2 r263prime_number_ceiling(T2 a1){ T2 R=0; if(((int32_t)(a1))<=(INT32_C(98317))){ if(((int32_t)(a1))<=(INT32_C(769))){ if(((int32_t)(a1))<=(INT32_C(53))){ if(((int32_t)(a1))<=(INT32_C(11))){ R=INT32_C(11); } else{ if(((int32_t)(a1))<=(INT32_C(23))){ R=INT32_C(23); } else{ R=INT32_C(53); } } } else{ if(((int32_t)(a1))<=(INT32_C(193))){ if(((int32_t)(a1))<=(INT32_C(97))){ R=INT32_C(97); } else{ R=INT32_C(193); } } else{ if(((int32_t)(a1))<=(INT32_C(389))){ R=INT32_C(389); } else{ R=INT32_C(769); } } } } else{ if(((int32_t)(a1))<=(INT32_C(12289))){ if(((int32_t)(a1))<=(INT32_C(3079))){ if(((int32_t)(a1))<=(INT32_C(1543))){ R=INT32_C(1543); } else{ R=INT32_C(3079); } } else{ if(((int32_t)(a1))<=(INT32_C(6151))){ R=INT32_C(6151); } else{ R=INT32_C(12289); } } } else{ if(((int32_t)(a1))<=(INT32_C(24593))){ R=INT32_C(24593); } else{ if(((int32_t)(a1))<=(INT32_C(49157))){ R=INT32_C(49157); } else{ R=INT32_C(98317); } } } } } else{ if(((int32_t)(a1))<=(INT32_C(12582917))){ if(((int32_t)(a1))<=(INT32_C(1572869))){ if(((int32_t)(a1))<=(INT32_C(393241))){ if(((int32_t)(a1))<=(INT32_C(196613))){ R=INT32_C(196613); } else{ R=INT32_C(393241); } } else{ if(((int32_t)(a1))<=(INT32_C(786433))){ R=INT32_C(786433); } else{ R=INT32_C(1572869); } } } else{ if(((int32_t)(a1))<=(INT32_C(3145739))){ R=INT32_C(3145739); } else{ if(((int32_t)(a1))<=(INT32_C(6291469))){ R=INT32_C(6291469); } else{ R=INT32_C(12582917); } } } } else{ if(((int32_t)(a1))<=(INT32_C(201326611))){ if(((int32_t)(a1))<=(INT32_C(50331653))){ if(((int32_t)(a1))<=(INT32_C(25165843))){ R=INT32_C(25165843); } else{ R=INT32_C(50331653); } } else{ if(((int32_t)(a1))<=(INT32_C(100663319))){ R=INT32_C(100663319); } else{ R=INT32_C(201326611); } } } else{ if(((int32_t)(a1))<=(INT32_C(805306457))){ if(((int32_t)(a1))<=(INT32_C(402653189))){ R=INT32_C(402653189); } else{ R=INT32_C(805306457); } } else{ if(((int32_t)(a1))<=(INT32_C(1610612741))){ R=INT32_C(1610612741); } else{ R=INT32_C(2147483647); } } } } } return R; }/*--*/ /*HASHED_DICTIONARY[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]*/T6 r263should_increase_capacity(T2 a1,T2 a2){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; tmp0/*and then*/=((T6)(((int32_t)(a2))>((int32_t)(((uint32_t)(((int32_t)(a1))/(INT32_C(3))))*((uint32_t)(INT32_C(2))))))); if(tmp0/*and then*/){ tmp0/*and then*/=((T6)(((int32_t)(a1))<(INT32_C(2147483647)))); } R=((T6)(tmp0/*and then*/)); return R; }/*--*/ /*HASHED_DICTIONARY[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]*/T0* r263common_free_nodes(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* _fn=(void*)0; if(fBC143common_free_nodes==0){fBC143common_free_nodes=1;{ tmp0/*new*/=((T0*)(new289())); r289set_item(((T289*)tmp0/*new*/),(void*)0); _fn=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new288())); r288special_common_dictionary(((T288*)tmp0/*new*/),_fn); oBC143common_free_nodes=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/oBC143common_free_nodes),_fn,(T0*)(t[288])); }} return oBC143common_free_nodes; }/*--*/ /*HASHED_DICTIONARY[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]*/T0* r263new_node(T263* C,T0* a1,T0* a2,T0* a3){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; R=(/*RF2*/((T302*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/); if((R)==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new300())); r300make(((T300*)tmp0/*new*/),a1,a2,a3); R=tmp0/*new*/; /*tmp0.unlock*/ } else{ (/*RF2*/((T302*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/)=(/*RF2*/(((T300*)R))->_next/*3p*/); r300make(((T300*)R),a1,a2,a3); } return R; }/*--*/ /*HASHED_DICTIONARY[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]*/void r263create_with_capacity(T263* C,T2 a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ /*SFN*/(C->_free_nodes/*5p*/)=r288fast_reference_at(((T288*)/*no_dispatch.e*/r263common_free_nodes()),(T0*)(t[263])); if(((/*RF2*/(C)->_free_nodes/*5p*/))==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new302())); r302set_item(((T302*)tmp0/*new*/),(void*)0); /*SFN*/(C->_free_nodes/*5p*/)=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/r263common_free_nodes()),(/*RF2*/(C)->_free_nodes/*5p*/),(T0*)(t[263])); } /*SFN*/(C->_buckets/*5p*/)=new301(a1); /*SFN*/(C->_capacity/*5p*/)=a1; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); /*SFN*/(C->_count/*5p*/)=INT32_C(0); }/*--*/ /*HASHED_DICTIONARY[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]*/void r263increase_capacity(T263* C){ T2 _i=0; T2 _idx=0; T2 _new_capacity=0; T301 _old_buckets=(void*)0; T0* _node1=(void*)0; T0* _node2=(void*)0; _new_capacity=r263prime_capacity(((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))+(INT32_C(1))); _old_buckets=(/*RF2*/(C)->_buckets/*5p*/); /*SFN*/(C->_buckets/*5p*/)=new301(_new_capacity); _i=((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))-(INT32_C(1)); /*SFN*/(C->_capacity/*5p*/)=_new_capacity; while(!(((int32_t)(_i))<(INT32_C(0)))) { _node1=(_old_buckets)[_i]; while(!((_node1)==((void*)((void*)0)))) { _node2=(/*RF2*/(((T300*)_node1))->_next/*3p*/); _idx=((int32_t)(r73hash_code(((T73*)/*no_dispatch.e*/(/*RF2*/(((T300*)_node1))->_key/*3p*/)))))%((/*RF2*/(C)->_capacity/*5p*/)); (/*RF2*/(((T300*)_node1))->_next/*3p*/)=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node1); _node1=_node2; } _i=((int32_t)(_i))-(INT32_C(1)); } /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); }/*--*/ /*HASHED_DICTIONARY[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]*/void r263add(T263* C,T0* a1,T0* a2){ T2 _idx=0; T0* _node=(void*)0; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); if(r263should_increase_capacity((/*RF2*/(C)->_capacity/*5p*/),(/*RF2*/(C)->_count/*5p*/))){ r263increase_capacity(C); } _idx=((int32_t)(r73hash_code(((T73*)/*no_dispatch.e*/a2))))%((/*RF2*/(C)->_capacity/*5p*/)); _node=r263new_node(C,a1,a2,((/*RF2*/(C)->_buckets/*5p*/))[_idx]); ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node); /*SFN*/(C->_count/*5p*/)=((int32_t)((/*RF2*/(C)->_count/*5p*/)))+(INT32_C(1)); }/*--*/ /*SIGNAL_1[X_INPUT_DEVICE]*/void r261emit(T261* C,T0* a1){ /*SFN*/(C->_index/*3p*/)=INT32_C(0); /*SFN*/(C->_last/*3p*/)=(/*RF2*/((T298*)((/*RF2*/(C)->_callbacks/*3p*/)))->_upper/*3p*/); while(!(((int32_t)((/*RF2*/(C)->_index/*3p*/)))>((/*RF2*/(C)->_last/*3p*/)))) { agent_launcher_X_INPUT_DEVICE(((/*RF2*/((T298*)((/*RF2*/(C)->_callbacks/*3p*/)))->_storage/*3p*/))[(/*RF2*/(C)->_index/*3p*/)],a1); /*SFN*/(C->_index/*3p*/)=((int32_t)((/*RF2*/(C)->_index/*3p*/)))+(INT32_C(1)); } }/*--*/ /*SIGNAL_1[X_INPUT_DEVICE]*/void r261make(T261* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ tmp0/*new*/=((T0*)(new298())); r298make(((T298*)tmp0/*new*/),INT32_C(0)); /*SFN*/(C->_callbacks/*3p*/)=tmp0/*new*/; /*tmp0.unlock*/ }/*--*/ /*HASHED_DICTIONARY[INTEGER_32,INTEGER_32]*/void r260put(T260* C,T2 a1,T2 a2){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T2 _h=0; T2 _idx=0; T0* _node=(void*)0; _h=(a2&/*0x7FFFFFFF*/INT32_C(2147483647)); _idx=((int32_t)(_h))%((/*RF2*/(C)->_capacity/*5p*/)); _node=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; while(1){ tmp0/*or else*/=((T6)((_node)==((void*)((void*)0)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(r260key_safe_equal((/*RF2*/(((T296*)_node))->_key/*3p*/),a2))); } if(tmp0/*or else*/){ break; } _node=(/*RF2*/(((T296*)_node))->_next/*3p*/); } if((_node)==((void*)((void*)0))){ if(r260should_increase_capacity((/*RF2*/(C)->_capacity/*5p*/),(/*RF2*/(C)->_count/*5p*/))){ r260increase_capacity(C); _idx=((int32_t)(_h))%((/*RF2*/(C)->_capacity/*5p*/)); } _node=r260new_node(C,a1,a2,((/*RF2*/(C)->_buckets/*5p*/))[_idx]); ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node); /*SFN*/(C->_count/*5p*/)=((int32_t)((/*RF2*/(C)->_count/*5p*/)))+(INT32_C(1)); /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); } else{ (/*RF2*/(((T296*)_node))->_item/*3p*/)=a1; } }/*--*/ /*HASHED_DICTIONARY[INTEGER_32,INTEGER_32]*/T2 r260at(T260* C,T2 a1){ T2 R=0; T2 _idx=0; T0* _node=(void*)0; _idx=((int32_t)((a1&/*0x7FFFFFFF*/INT32_C(2147483647))))%((/*RF2*/(C)->_capacity/*5p*/)); _node=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; while(!(r260key_safe_equal((/*RF2*/(((T296*)_node))->_key/*3p*/),a1))) { _node=(/*RF2*/(((T296*)_node))->_next/*3p*/); } R=(/*RF2*/(((T296*)_node))->_item/*3p*/); return R; }/*--*/ /*HASHED_DICTIONARY[INTEGER_32,INTEGER_32]*/void r260make(T260* C){ r260create_with_capacity(C,INT32_C(53)); }/*--*/ /*HASHED_DICTIONARY[INTEGER_32,INTEGER_32]*/T6 r260key_safe_equal(T2 a1,T2 a2){ T6 R=0; if((a1)==(a2)){ R=((T6)(1)); } else{ R=((T6)((a1)==(a2))); } return R; }/*--*/ /*HASHED_DICTIONARY[INTEGER_32,INTEGER_32]*/T2 r260prime_capacity(T2 a1){ T2 R=0; R=(int32_t)(((uint32_t)(a1))+((uint32_t)(((int32_t)(a1))/(INT32_C(2))))); if(((int32_t)(R))>(INT32_C(0))){ R=r260prime_number_ceiling(R); } else{ R=r260prime_number_ceiling(INT32_C(2147483647)); } return R; }/*--*/ /*HASHED_DICTIONARY[INTEGER_32,INTEGER_32]*/T2 r260prime_number_ceiling(T2 a1){ T2 R=0; if(((int32_t)(a1))<=(INT32_C(98317))){ if(((int32_t)(a1))<=(INT32_C(769))){ if(((int32_t)(a1))<=(INT32_C(53))){ if(((int32_t)(a1))<=(INT32_C(11))){ R=INT32_C(11); } else{ if(((int32_t)(a1))<=(INT32_C(23))){ R=INT32_C(23); } else{ R=INT32_C(53); } } } else{ if(((int32_t)(a1))<=(INT32_C(193))){ if(((int32_t)(a1))<=(INT32_C(97))){ R=INT32_C(97); } else{ R=INT32_C(193); } } else{ if(((int32_t)(a1))<=(INT32_C(389))){ R=INT32_C(389); } else{ R=INT32_C(769); } } } } else{ if(((int32_t)(a1))<=(INT32_C(12289))){ if(((int32_t)(a1))<=(INT32_C(3079))){ if(((int32_t)(a1))<=(INT32_C(1543))){ R=INT32_C(1543); } else{ R=INT32_C(3079); } } else{ if(((int32_t)(a1))<=(INT32_C(6151))){ R=INT32_C(6151); } else{ R=INT32_C(12289); } } } else{ if(((int32_t)(a1))<=(INT32_C(24593))){ R=INT32_C(24593); } else{ if(((int32_t)(a1))<=(INT32_C(49157))){ R=INT32_C(49157); } else{ R=INT32_C(98317); } } } } } else{ if(((int32_t)(a1))<=(INT32_C(12582917))){ if(((int32_t)(a1))<=(INT32_C(1572869))){ if(((int32_t)(a1))<=(INT32_C(393241))){ if(((int32_t)(a1))<=(INT32_C(196613))){ R=INT32_C(196613); } else{ R=INT32_C(393241); } } else{ if(((int32_t)(a1))<=(INT32_C(786433))){ R=INT32_C(786433); } else{ R=INT32_C(1572869); } } } else{ if(((int32_t)(a1))<=(INT32_C(3145739))){ R=INT32_C(3145739); } else{ if(((int32_t)(a1))<=(INT32_C(6291469))){ R=INT32_C(6291469); } else{ R=INT32_C(12582917); } } } } else{ if(((int32_t)(a1))<=(INT32_C(201326611))){ if(((int32_t)(a1))<=(INT32_C(50331653))){ if(((int32_t)(a1))<=(INT32_C(25165843))){ R=INT32_C(25165843); } else{ R=INT32_C(50331653); } } else{ if(((int32_t)(a1))<=(INT32_C(100663319))){ R=INT32_C(100663319); } else{ R=INT32_C(201326611); } } } else{ if(((int32_t)(a1))<=(INT32_C(805306457))){ if(((int32_t)(a1))<=(INT32_C(402653189))){ R=INT32_C(402653189); } else{ R=INT32_C(805306457); } } else{ if(((int32_t)(a1))<=(INT32_C(1610612741))){ R=INT32_C(1610612741); } else{ R=INT32_C(2147483647); } } } } } return R; }/*--*/ /*HASHED_DICTIONARY[INTEGER_32,INTEGER_32]*/T6 r260should_increase_capacity(T2 a1,T2 a2){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; tmp0/*and then*/=((T6)(((int32_t)(a2))>((int32_t)(((uint32_t)(((int32_t)(a1))/(INT32_C(3))))*((uint32_t)(INT32_C(2))))))); if(tmp0/*and then*/){ tmp0/*and then*/=((T6)(((int32_t)(a1))<(INT32_C(2147483647)))); } R=((T6)(tmp0/*and then*/)); return R; }/*--*/ /*HASHED_DICTIONARY[INTEGER_32,INTEGER_32]*/T0* r260common_free_nodes(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* _fn=(void*)0; if(fBC143common_free_nodes==0){fBC143common_free_nodes=1;{ tmp0/*new*/=((T0*)(new289())); r289set_item(((T289*)tmp0/*new*/),(void*)0); _fn=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new288())); r288special_common_dictionary(((T288*)tmp0/*new*/),_fn); oBC143common_free_nodes=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/oBC143common_free_nodes),_fn,(T0*)(t[288])); }} return oBC143common_free_nodes; }/*--*/ /*HASHED_DICTIONARY[INTEGER_32,INTEGER_32]*/T0* r260new_node(T260* C,T2 a1,T2 a2,T0* a3){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; R=(/*RF2*/((T297*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/); if((R)==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new296())); r296make(((T296*)tmp0/*new*/),a1,a2,a3); R=tmp0/*new*/; /*tmp0.unlock*/ } else{ (/*RF2*/((T297*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/)=(/*RF2*/(((T296*)R))->_next/*3p*/); r296make(((T296*)R),a1,a2,a3); } return R; }/*--*/ /*HASHED_DICTIONARY[INTEGER_32,INTEGER_32]*/void r260create_with_capacity(T260* C,T2 a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ /*SFN*/(C->_free_nodes/*5p*/)=r288fast_reference_at(((T288*)/*no_dispatch.e*/r260common_free_nodes()),(T0*)(t[260])); if(((/*RF2*/(C)->_free_nodes/*5p*/))==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new297())); r297set_item(((T297*)tmp0/*new*/),(void*)0); /*SFN*/(C->_free_nodes/*5p*/)=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/r260common_free_nodes()),(/*RF2*/(C)->_free_nodes/*5p*/),(T0*)(t[260])); } /*SFN*/(C->_buckets/*5p*/)=new295(a1); /*SFN*/(C->_capacity/*5p*/)=a1; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); /*SFN*/(C->_count/*5p*/)=INT32_C(0); }/*--*/ /*HASHED_DICTIONARY[INTEGER_32,INTEGER_32]*/void r260increase_capacity(T260* C){ T2 _i=0; T2 _idx=0; T2 _new_capacity=0; T295 _old_buckets=(void*)0; T0* _node1=(void*)0; T0* _node2=(void*)0; _new_capacity=r260prime_capacity(((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))+(INT32_C(1))); _old_buckets=(/*RF2*/(C)->_buckets/*5p*/); /*SFN*/(C->_buckets/*5p*/)=new295(_new_capacity); _i=((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))-(INT32_C(1)); /*SFN*/(C->_capacity/*5p*/)=_new_capacity; while(!(((int32_t)(_i))<(INT32_C(0)))) { _node1=(_old_buckets)[_i]; while(!((_node1)==((void*)((void*)0)))) { _node2=(/*RF2*/(((T296*)_node1))->_next/*3p*/); _idx=((int32_t)(((/*RF2*/(((T296*)_node1))->_key/*3p*/)&/*0x7FFFFFFF*/INT32_C(2147483647))))%((/*RF2*/(C)->_capacity/*5p*/)); (/*RF2*/(((T296*)_node1))->_next/*3p*/)=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node1); _node1=_node2; } _i=((int32_t)(_i))-(INT32_C(1)); } /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); }/*--*/ /*RING_ARRAY[INTEGER_32]*/void r256move(T256* C,T2 a1,T2 a2,T2 a3){ T2 _default_value=0; T2 _i=0; if((a3)==(INT8_C(0))){ } else{ if(((int32_t)(a3))<(INT32_C(0))){ _i=a1; while(!(((int32_t)(_i))>(a2))) { r256put(C,r256item(C,_i),((int32_t)(_i))+(a3)); r256put(C,_default_value,_i); _i=((int32_t)(_i))+(INT32_C(1)); } } else{ _i=a2; while(!(((int32_t)(_i))<(a1))) { r256put(C,r256item(C,_i),((int32_t)(_i))+(a3)); r256put(C,_default_value,_i); _i=((int32_t)(_i))-(INT32_C(1)); } } } }/*--*/ /*RING_ARRAY[INTEGER_32]*/void r256remove_first(T256* C){ /*SFN*/(C->_lower/*5p*/)=((int32_t)((/*RF2*/(C)->_lower/*5p*/)))+(INT32_C(1)); /*SFN*/(C->_storage_lower/*5p*/)=((int32_t)((/*RF2*/(C)->_storage_lower/*5p*/)))+(INT32_C(1)); if(((/*RF2*/(C)->_storage_lower/*5p*/))==((/*RF2*/(C)->_capacity/*5p*/))){ /*SFN*/(C->_storage_lower/*5p*/)=INT32_C(0); } }/*--*/ /*RING_ARRAY[INTEGER_32]*/T2 r256wrap_point(T256* C){ T2 R=0; R=((int32_t)(((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))+((/*RF2*/(C)->_lower/*5p*/))))-((/*RF2*/(C)->_storage_lower/*5p*/)); return R; }/*--*/ /*RING_ARRAY[INTEGER_32]*/void r256make_space_for_one(T256* C){ T2 _old_capacity=0; T2 _s_u=0; T2 _wp=0; if(((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))<(((int32_t)(r256count(C)))+(INT32_C(1)))){ if(((/*RF2*/(C)->_capacity/*5p*/))==(INT8_C(0))){ /*SFN*/(C->_capacity/*5p*/)=INT32_C(16); /*SFN*/(C->_storage/*5p*/)=new294((/*RF2*/(C)->_capacity/*5p*/)); } else{ _wp=r256wrap_point(C); _s_u=r256storage_upper(C); _old_capacity=(/*RF2*/(C)->_capacity/*5p*/); /*SFN*/(C->_capacity/*5p*/)=((int32_t)(INT32_C(2)))*((/*RF2*/(C)->_capacity/*5p*/)); /*SFN*/(C->_storage/*5p*/)=r294realloc((/*RF2*/(C)->_storage/*5p*/),_old_capacity,(/*RF2*/(C)->_capacity/*5p*/)); if(((int32_t)(_s_u))<((/*RF2*/(C)->_storage_lower/*5p*/))){ /*SFN*/(C->_upper/*5p*/)=((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*5p*/)))+((/*RF2*/(C)->_capacity/*5p*/))))-(_old_capacity); r256squeeze_bubble(C,(/*RF2*/(C)->_lower/*5p*/),(/*RF2*/(C)->_upper/*5p*/),_wp,((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))-(_old_capacity)); /*SFN*/(C->_upper/*5p*/)=((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*5p*/)))-((/*RF2*/(C)->_capacity/*5p*/))))+(_old_capacity); } } } }/*--*/ /*RING_ARRAY[INTEGER_32]*/void r256squeeze_bubble(T256* C,T2 a1,T2 a2,T2 a3,T2 a4){ if(((int32_t)(((int32_t)(a3))-(a1)))<=(((int32_t)(((int32_t)(a2))-(a3)))-(a4))){ r256move(C,a1,((int32_t)(a3))-(INT32_C(1)),a4); /*SFN*/(C->_storage_lower/*5p*/)=((int32_t)((/*RF2*/(C)->_storage_lower/*5p*/)))+(a4); if(((int32_t)((/*RF2*/(C)->_storage_lower/*5p*/)))>=((/*RF2*/(C)->_capacity/*5p*/))){ /*SFN*/(C->_storage_lower/*5p*/)=((int32_t)((/*RF2*/(C)->_storage_lower/*5p*/)))-((/*RF2*/(C)->_capacity/*5p*/)); } } else{ r256move(C,((int32_t)(a3))+(a4),a2,-(a4)); } }/*--*/ /*RING_ARRAY[INTEGER_32]*/T2 r256storage_upper(T256* C){ T2 R=0; R=r256storage_index(C,(/*RF2*/(C)->_upper/*5p*/)); return R; }/*--*/ /*RING_ARRAY[INTEGER_32]*/void r256put(T256* C,T2 a1,T2 a2){ ((/*RF2*/(C)->_storage/*5p*/))[r256storage_index(C,a2)]=(a1); }/*--*/ /*RING_ARRAY[INTEGER_32]*/T2 r256storage_index(T256* C,T2 a1){ T2 R=0; R=((int32_t)(((int32_t)(a1))-((/*RF2*/(C)->_lower/*5p*/))))+((/*RF2*/(C)->_storage_lower/*5p*/)); if(((int32_t)(R))>=((/*RF2*/(C)->_capacity/*5p*/))){ R=((int32_t)(R))-((/*RF2*/(C)->_capacity/*5p*/)); } return R; }/*--*/ /*RING_ARRAY[INTEGER_32]*/void r256clear_all(T256* C){ T2 _value=0; r256set_all_with(C,_value); }/*--*/ /*RING_ARRAY[INTEGER_32]*/void r256set_all_with(T256* C,T2 a1){ T2 _s_u=0; if(r256is_empty(C)){ } else{ _s_u=r256storage_upper(C); if(((int32_t)((/*RF2*/(C)->_storage_lower/*5p*/)))<=(_s_u)){ r294set_slice_with((/*RF2*/(C)->_storage/*5p*/),a1,(/*RF2*/(C)->_storage_lower/*5p*/),_s_u); } else{ r294set_all_with((/*RF2*/(C)->_storage/*5p*/),a1,_s_u); r294set_slice_with((/*RF2*/(C)->_storage/*5p*/),a1,(/*RF2*/(C)->_storage_lower/*5p*/),((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))-(INT32_C(1))); } } }/*--*/ /*RING_ARRAY[INTEGER_32]*/void r256make(T256* C,T2 a1,T2 a2){ T2 _needed=0; /*SFN*/(C->_lower/*5p*/)=a1; /*SFN*/(C->_upper/*5p*/)=a2; _needed=((int32_t)(((int32_t)(a2))-(a1)))+(INT32_C(1)); /*SFN*/(C->_storage_lower/*5p*/)=INT32_C(0); if(((int32_t)(_needed))>(INT32_C(0))){ if(((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))<(_needed)){ /*SFN*/(C->_storage/*5p*/)=new294(_needed); /*SFN*/(C->_capacity/*5p*/)=_needed; } else{ r256clear_all(C); } } }/*--*/ /*RING_ARRAY[INTEGER_32]*/void r256add_last(T256* C,T2 a1){ r256make_space_for_one(C); /*SFN*/(C->_upper/*5p*/)=((int32_t)((/*RF2*/(C)->_upper/*5p*/)))+(INT32_C(1)); r256put(C,a1,(/*RF2*/(C)->_upper/*5p*/)); }/*--*/ /*RING_ARRAY[INTEGER_32]*/T2 r256count(T256* C){ T2 R=0; R=((int32_t)(((int32_t)((/*RF2*/(C)->_upper/*5p*/)))-((/*RF2*/(C)->_lower/*5p*/))))+(INT32_C(1)); return R; }/*--*/ /*RING_ARRAY[INTEGER_32]*/T6 r256is_empty(T256* C){ T6 R=0; R=((T6)(((int32_t)((/*RF2*/(C)->_upper/*5p*/)))<((/*RF2*/(C)->_lower/*5p*/)))); return R; }/*--*/ /*RING_ARRAY[INTEGER_32]*/T2 r256item(T256* C,T2 a1){ T2 R=0; R=((/*RF2*/(C)->_storage/*5p*/))[r256storage_index(C,a1)]; return R; }/*--*/ /*HASHED_DICTIONARY[POINTER,STRING]*/void r253make(T253* C){ r253create_with_capacity(C,INT32_C(53)); }/*--*/ /*HASHED_DICTIONARY[POINTER,STRING]*/T2 r253prime_capacity(T2 a1){ T2 R=0; R=(int32_t)(((uint32_t)(a1))+((uint32_t)(((int32_t)(a1))/(INT32_C(2))))); if(((int32_t)(R))>(INT32_C(0))){ R=r253prime_number_ceiling(R); } else{ R=r253prime_number_ceiling(INT32_C(2147483647)); } return R; }/*--*/ /*HASHED_DICTIONARY[POINTER,STRING]*/T2 r253prime_number_ceiling(T2 a1){ T2 R=0; if(((int32_t)(a1))<=(INT32_C(98317))){ if(((int32_t)(a1))<=(INT32_C(769))){ if(((int32_t)(a1))<=(INT32_C(53))){ if(((int32_t)(a1))<=(INT32_C(11))){ R=INT32_C(11); } else{ if(((int32_t)(a1))<=(INT32_C(23))){ R=INT32_C(23); } else{ R=INT32_C(53); } } } else{ if(((int32_t)(a1))<=(INT32_C(193))){ if(((int32_t)(a1))<=(INT32_C(97))){ R=INT32_C(97); } else{ R=INT32_C(193); } } else{ if(((int32_t)(a1))<=(INT32_C(389))){ R=INT32_C(389); } else{ R=INT32_C(769); } } } } else{ if(((int32_t)(a1))<=(INT32_C(12289))){ if(((int32_t)(a1))<=(INT32_C(3079))){ if(((int32_t)(a1))<=(INT32_C(1543))){ R=INT32_C(1543); } else{ R=INT32_C(3079); } } else{ if(((int32_t)(a1))<=(INT32_C(6151))){ R=INT32_C(6151); } else{ R=INT32_C(12289); } } } else{ if(((int32_t)(a1))<=(INT32_C(24593))){ R=INT32_C(24593); } else{ if(((int32_t)(a1))<=(INT32_C(49157))){ R=INT32_C(49157); } else{ R=INT32_C(98317); } } } } } else{ if(((int32_t)(a1))<=(INT32_C(12582917))){ if(((int32_t)(a1))<=(INT32_C(1572869))){ if(((int32_t)(a1))<=(INT32_C(393241))){ if(((int32_t)(a1))<=(INT32_C(196613))){ R=INT32_C(196613); } else{ R=INT32_C(393241); } } else{ if(((int32_t)(a1))<=(INT32_C(786433))){ R=INT32_C(786433); } else{ R=INT32_C(1572869); } } } else{ if(((int32_t)(a1))<=(INT32_C(3145739))){ R=INT32_C(3145739); } else{ if(((int32_t)(a1))<=(INT32_C(6291469))){ R=INT32_C(6291469); } else{ R=INT32_C(12582917); } } } } else{ if(((int32_t)(a1))<=(INT32_C(201326611))){ if(((int32_t)(a1))<=(INT32_C(50331653))){ if(((int32_t)(a1))<=(INT32_C(25165843))){ R=INT32_C(25165843); } else{ R=INT32_C(50331653); } } else{ if(((int32_t)(a1))<=(INT32_C(100663319))){ R=INT32_C(100663319); } else{ R=INT32_C(201326611); } } } else{ if(((int32_t)(a1))<=(INT32_C(805306457))){ if(((int32_t)(a1))<=(INT32_C(402653189))){ R=INT32_C(402653189); } else{ R=INT32_C(805306457); } } else{ if(((int32_t)(a1))<=(INT32_C(1610612741))){ R=INT32_C(1610612741); } else{ R=INT32_C(2147483647); } } } } } return R; }/*--*/ /*HASHED_DICTIONARY[POINTER,STRING]*/T6 r253should_increase_capacity(T2 a1,T2 a2){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; tmp0/*and then*/=((T6)(((int32_t)(a2))>((int32_t)(((uint32_t)(((int32_t)(a1))/(INT32_C(3))))*((uint32_t)(INT32_C(2))))))); if(tmp0/*and then*/){ tmp0/*and then*/=((T6)(((int32_t)(a1))<(INT32_C(2147483647)))); } R=((T6)(tmp0/*and then*/)); return R; }/*--*/ /*HASHED_DICTIONARY[POINTER,STRING]*/T0* r253common_free_nodes(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* _fn=(void*)0; if(fBC143common_free_nodes==0){fBC143common_free_nodes=1;{ tmp0/*new*/=((T0*)(new289())); r289set_item(((T289*)tmp0/*new*/),(void*)0); _fn=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new288())); r288special_common_dictionary(((T288*)tmp0/*new*/),_fn); oBC143common_free_nodes=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/oBC143common_free_nodes),_fn,(T0*)(t[288])); }} return oBC143common_free_nodes; }/*--*/ /*HASHED_DICTIONARY[POINTER,STRING]*/T0* r253new_node(T253* C,T8 a1,T0* a2,T0* a3){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; R=(/*RF2*/((T293*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/); if((R)==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new292())); r292make(((T292*)tmp0/*new*/),a1,a2,a3); R=tmp0/*new*/; /*tmp0.unlock*/ } else{ (/*RF2*/((T293*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/)=(/*RF2*/(((T292*)R))->_next/*3p*/); r292make(((T292*)R),a1,a2,a3); } return R; }/*--*/ /*HASHED_DICTIONARY[POINTER,STRING]*/void r253create_with_capacity(T253* C,T2 a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ /*SFN*/(C->_free_nodes/*5p*/)=r288fast_reference_at(((T288*)/*no_dispatch.e*/r253common_free_nodes()),(T0*)(t[253])); if(((/*RF2*/(C)->_free_nodes/*5p*/))==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new293())); r293set_item(((T293*)tmp0/*new*/),(void*)0); /*SFN*/(C->_free_nodes/*5p*/)=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/r253common_free_nodes()),(/*RF2*/(C)->_free_nodes/*5p*/),(T0*)(t[253])); } /*SFN*/(C->_buckets/*5p*/)=new291(a1); /*SFN*/(C->_capacity/*5p*/)=a1; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); /*SFN*/(C->_count/*5p*/)=INT32_C(0); }/*--*/ /*HASHED_DICTIONARY[POINTER,STRING]*/void r253increase_capacity(T253* C){ T2 _i=0; T2 _idx=0; T2 _new_capacity=0; T291 _old_buckets=(void*)0; T0* _node1=(void*)0; T0* _node2=(void*)0; _new_capacity=r253prime_capacity(((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))+(INT32_C(1))); _old_buckets=(/*RF2*/(C)->_buckets/*5p*/); /*SFN*/(C->_buckets/*5p*/)=new291(_new_capacity); _i=((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))-(INT32_C(1)); /*SFN*/(C->_capacity/*5p*/)=_new_capacity; while(!(((int32_t)(_i))<(INT32_C(0)))) { _node1=(_old_buckets)[_i]; while(!((_node1)==((void*)((void*)0)))) { _node2=(/*RF2*/(((T292*)_node1))->_next/*3p*/); _idx=((int32_t)(r7hash_code((T7*)((/*RF2*/(((T292*)_node1))->_key/*3p*/)))))%((/*RF2*/(C)->_capacity/*5p*/)); (/*RF2*/(((T292*)_node1))->_next/*3p*/)=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node1); _node1=_node2; } _i=((int32_t)(_i))-(INT32_C(1)); } /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); }/*--*/ /*HASHED_DICTIONARY[POINTER,STRING]*/void r253add(T253* C,T8 a1,T0* a2){ T2 _idx=0; T0* _node=(void*)0; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); if(r253should_increase_capacity((/*RF2*/(C)->_capacity/*5p*/),(/*RF2*/(C)->_count/*5p*/))){ r253increase_capacity(C); } _idx=((int32_t)(r7hash_code(((T7*)a2))))%((/*RF2*/(C)->_capacity/*5p*/)); _node=r253new_node(C,a1,a2,((/*RF2*/(C)->_buckets/*5p*/))[_idx]); ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node); /*SFN*/(C->_count/*5p*/)=((int32_t)((/*RF2*/(C)->_count/*5p*/)))+(INT32_C(1)); }/*--*/ /*HASHED_DICTIONARY[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]*/void r250make(T250* C){ r250create_with_capacity(C,INT32_C(53)); }/*--*/ /*HASHED_DICTIONARY[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]*/T2 r250prime_capacity(T2 a1){ T2 R=0; R=(int32_t)(((uint32_t)(a1))+((uint32_t)(((int32_t)(a1))/(INT32_C(2))))); if(((int32_t)(R))>(INT32_C(0))){ R=r250prime_number_ceiling(R); } else{ R=r250prime_number_ceiling(INT32_C(2147483647)); } return R; }/*--*/ /*HASHED_DICTIONARY[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]*/T2 r250prime_number_ceiling(T2 a1){ T2 R=0; if(((int32_t)(a1))<=(INT32_C(98317))){ if(((int32_t)(a1))<=(INT32_C(769))){ if(((int32_t)(a1))<=(INT32_C(53))){ if(((int32_t)(a1))<=(INT32_C(11))){ R=INT32_C(11); } else{ if(((int32_t)(a1))<=(INT32_C(23))){ R=INT32_C(23); } else{ R=INT32_C(53); } } } else{ if(((int32_t)(a1))<=(INT32_C(193))){ if(((int32_t)(a1))<=(INT32_C(97))){ R=INT32_C(97); } else{ R=INT32_C(193); } } else{ if(((int32_t)(a1))<=(INT32_C(389))){ R=INT32_C(389); } else{ R=INT32_C(769); } } } } else{ if(((int32_t)(a1))<=(INT32_C(12289))){ if(((int32_t)(a1))<=(INT32_C(3079))){ if(((int32_t)(a1))<=(INT32_C(1543))){ R=INT32_C(1543); } else{ R=INT32_C(3079); } } else{ if(((int32_t)(a1))<=(INT32_C(6151))){ R=INT32_C(6151); } else{ R=INT32_C(12289); } } } else{ if(((int32_t)(a1))<=(INT32_C(24593))){ R=INT32_C(24593); } else{ if(((int32_t)(a1))<=(INT32_C(49157))){ R=INT32_C(49157); } else{ R=INT32_C(98317); } } } } } else{ if(((int32_t)(a1))<=(INT32_C(12582917))){ if(((int32_t)(a1))<=(INT32_C(1572869))){ if(((int32_t)(a1))<=(INT32_C(393241))){ if(((int32_t)(a1))<=(INT32_C(196613))){ R=INT32_C(196613); } else{ R=INT32_C(393241); } } else{ if(((int32_t)(a1))<=(INT32_C(786433))){ R=INT32_C(786433); } else{ R=INT32_C(1572869); } } } else{ if(((int32_t)(a1))<=(INT32_C(3145739))){ R=INT32_C(3145739); } else{ if(((int32_t)(a1))<=(INT32_C(6291469))){ R=INT32_C(6291469); } else{ R=INT32_C(12582917); } } } } else{ if(((int32_t)(a1))<=(INT32_C(201326611))){ if(((int32_t)(a1))<=(INT32_C(50331653))){ if(((int32_t)(a1))<=(INT32_C(25165843))){ R=INT32_C(25165843); } else{ R=INT32_C(50331653); } } else{ if(((int32_t)(a1))<=(INT32_C(100663319))){ R=INT32_C(100663319); } else{ R=INT32_C(201326611); } } } else{ if(((int32_t)(a1))<=(INT32_C(805306457))){ if(((int32_t)(a1))<=(INT32_C(402653189))){ R=INT32_C(402653189); } else{ R=INT32_C(805306457); } } else{ if(((int32_t)(a1))<=(INT32_C(1610612741))){ R=INT32_C(1610612741); } else{ R=INT32_C(2147483647); } } } } } return R; }/*--*/ /*HASHED_DICTIONARY[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]*/T6 r250should_increase_capacity(T2 a1,T2 a2){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; tmp0/*and then*/=((T6)(((int32_t)(a2))>((int32_t)(((uint32_t)(((int32_t)(a1))/(INT32_C(3))))*((uint32_t)(INT32_C(2))))))); if(tmp0/*and then*/){ tmp0/*and then*/=((T6)(((int32_t)(a1))<(INT32_C(2147483647)))); } R=((T6)(tmp0/*and then*/)); return R; }/*--*/ /*HASHED_DICTIONARY[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]*/T0* r250common_free_nodes(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* _fn=(void*)0; if(fBC143common_free_nodes==0){fBC143common_free_nodes=1;{ tmp0/*new*/=((T0*)(new289())); r289set_item(((T289*)tmp0/*new*/),(void*)0); _fn=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new288())); r288special_common_dictionary(((T288*)tmp0/*new*/),_fn); oBC143common_free_nodes=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/oBC143common_free_nodes),_fn,(T0*)(t[288])); }} return oBC143common_free_nodes; }/*--*/ /*HASHED_DICTIONARY[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]*/T0* r250new_node(T250* C,T0* a1,T0* a2,T0* a3){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; R=(/*RF2*/((T287*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/); if((R)==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new284())); r284make(((T284*)tmp0/*new*/),a1,a2,a3); R=tmp0/*new*/; /*tmp0.unlock*/ } else{ (/*RF2*/((T287*)((/*RF2*/(C)->_free_nodes/*5p*/)))->_item/*ip*/)=(/*RF2*/(((T284*)R))->_next/*3p*/); r284make(((T284*)R),a1,a2,a3); } return R; }/*--*/ /*HASHED_DICTIONARY[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]*/void r250create_with_capacity(T250* C,T2 a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ /*SFN*/(C->_free_nodes/*5p*/)=r288fast_reference_at(((T288*)/*no_dispatch.e*/r250common_free_nodes()),(T0*)(t[250])); if(((/*RF2*/(C)->_free_nodes/*5p*/))==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new287())); r287set_item(((T287*)tmp0/*new*/),(void*)0); /*SFN*/(C->_free_nodes/*5p*/)=tmp0/*new*/; /*tmp0.unlock*/ r288add(((T288*)/*no_dispatch.e*/r250common_free_nodes()),(/*RF2*/(C)->_free_nodes/*5p*/),(T0*)(t[250])); } /*SFN*/(C->_buckets/*5p*/)=new283(a1); /*SFN*/(C->_capacity/*5p*/)=a1; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); /*SFN*/(C->_count/*5p*/)=INT32_C(0); }/*--*/ /*HASHED_DICTIONARY[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]*/void r250increase_capacity(T250* C){ T2 _i=0; T2 _idx=0; T2 _new_capacity=0; T283 _old_buckets=(void*)0; T0* _node1=(void*)0; T0* _node2=(void*)0; _new_capacity=r250prime_capacity(((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))+(INT32_C(1))); _old_buckets=(/*RF2*/(C)->_buckets/*5p*/); /*SFN*/(C->_buckets/*5p*/)=new283(_new_capacity); _i=((int32_t)((/*RF2*/(C)->_capacity/*5p*/)))-(INT32_C(1)); /*SFN*/(C->_capacity/*5p*/)=_new_capacity; while(!(((int32_t)(_i))<(INT32_C(0)))) { _node1=(_old_buckets)[_i]; while(!((_node1)==((void*)((void*)0)))) { _node2=(/*RF2*/(((T284*)_node1))->_next/*3p*/); _idx=((int32_t)(r7hash_code((T7*)((/*RF2*/(((T284*)_node1))->_key/*3p*/)))))%((/*RF2*/(C)->_capacity/*5p*/)); (/*RF2*/(((T284*)_node1))->_next/*3p*/)=((/*RF2*/(C)->_buckets/*5p*/))[_idx]; ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node1); _node1=_node2; } _i=((int32_t)(_i))-(INT32_C(1)); } /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); }/*--*/ /*HASHED_DICTIONARY[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]*/void r250add(T250* C,T0* a1,T0* a2){ T2 _idx=0; T0* _node=(void*)0; /*SFN*/(C->_cache_user/*5p*/)=INT32_C(-1); if(r250should_increase_capacity((/*RF2*/(C)->_capacity/*5p*/),(/*RF2*/(C)->_count/*5p*/))){ r250increase_capacity(C); } _idx=((int32_t)(r7hash_code(((T7*)a2))))%((/*RF2*/(C)->_capacity/*5p*/)); _node=r250new_node(C,a1,a2,((/*RF2*/(C)->_buckets/*5p*/))[_idx]); ((/*RF2*/(C)->_buckets/*5p*/))[_idx]=(_node); /*SFN*/(C->_count/*5p*/)=((int32_t)((/*RF2*/(C)->_count/*5p*/)))+(INT32_C(1)); }/*--*/ /*STREAM_EXCEPTION*/void r113make(T113* C,T0* a1){ /*SFN*/(C->_stream/*ip*/)=a1; }/*--*/ /*STREAM_EXCEPTION*/void r113expect(T113* C,T0* a1){ r154when_exception(((T154*)a1),(/*RF2*/(C)->_stream/*ip*/)); }/*--*/ /*STREAM_EXCEPTION*/T6 r113occurred(T113* C,T0* a1){ T6 R=0; R=((T6)(r154is_exception(((T154*)a1),(/*RF2*/(C)->_stream/*ip*/)))); return R; }/*--*/ /*CAN_READ_DATA_FROM_STREAM*/void r123make(T123* C,T0* a1){ /*SFN*/(C->_input_stream/*ip*/)=a1; }/*--*/ /*CAN_READ_DATA_FROM_STREAM*/void r123expect(T123* C,T0* a1){ r154when_data(((T154*)a1),(/*RF2*/(C)->_input_stream/*ip*/)); }/*--*/ /*CAN_READ_DATA_FROM_STREAM*/T6 r123occurred(T123* C,T0* a1){ T6 R=0; R=((T6)(r154is_data(((T154*)a1),(/*RF2*/(C)->_input_stream/*ip*/)))); return R; }/*--*/ /*TIME*/T6 r205_ix_60(T205* C,T205 a1){ T6 R=0; R=((T6)((time_difftime((/*RF2*/(a1)._time_memory/**/),(/*RF2*/(*C)._time_memory/**/)))>(/*IC*/(T5)(INT8_C(0))))); return R; }/*--*/ /*TIME*/T5 r205elapsed_seconds(T205* C,T205 a1){ T5 R=0; R=time_difftime((/*RF2*/(a1)._time_memory/**/),(/*RF2*/(*C)._time_memory/**/)); return R; }/*--*/ /*MICROSECOND_TIME*/T6 r192_ix_60(T192* C,T192 a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; T6 tmp1; T205 tmp2; T205 tmp3; /*INTERNAL_C_LOCAL list]*/ T6 R=0; tmp0/*or else*/=((T6)(r205_ix_60(&((/*RF2*/(*C)._time/**/)),(/*RF2*/(a1)._time/**/)))); if(tmp0/*or else*/){ } else{ tmp1/*and then*/=((T6)(!se_cmpT205((tmp2/*se_cmp1*/=(/*RF2*/(*C)._time/**/), &tmp2/*se_cmp1*/),(tmp3/*se_cmp2*/=(/*RF2*/(a1)._time/**/), &tmp3/*se_cmp2*/))/*tmp2.unlock*/ /*tmp3.unlock*/ )); if(tmp1/*and then*/){ tmp1/*and then*/=((T6)(((int32_t)((/*RF2*/(*C)._microsecond/**/)))<((/*RF2*/(a1)._microsecond/**/)))); } tmp0/*or else*/=((T6)(tmp1/*and then*/)); } R=((T6)(tmp0/*or else*/)); return R; }/*--*/ /*MICROSECOND_TIME*/T5 r192elapsed_seconds(T192* C,T192 a1){ T5 R=0; R=r205elapsed_seconds(&((/*RF2*/(*C)._time/**/)),(/*RF2*/(a1)._time/**/)); R=(R)+(((T5)(((int32_t)((/*RF2*/(a1)._microsecond/**/)))-((/*RF2*/(*C)._microsecond/**/))))/(INT32_C(1000000))); return R; }/*--*/ /*MICROSECOND_TIME*/void r192update(T192* C){ basic_microsecond_update; (/*RF2*/((/*RF2*/(*C)._time/**/))._time_memory/**/)=basic_microsecond_time; /*SFN*/(C->_microsecond/**/)=basic_microsecond_microsecond; }/*--*/ /*EVENTS_SET*/T6 r154has_exception(T154* C,T2 a1){ T6 R=0; R=((T6)(sequencer_is_ready((/*RF2*/(C)->_exception_set/*12p*/),a1))); return R; }/*--*/ /*EVENTS_SET*/void r154expect_readable(T154* C,T2 a1){ sequencer_watch((/*RF2*/(C)->_read_set/*12p*/),a1); /*SFN*/(C->_read_size/*12p*/)=((int32_t)((/*RF2*/(C)->_read_size/*12p*/)))+(INT32_C(1)); /*SFN*/(C->_highest/*12p*/)=r2max((/*RF2*/(C)->_highest/*12p*/),a1); }/*--*/ /*EVENTS_SET*/void r154when_data(T154* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T2 tmp0; /*INTERNAL_C_LOCAL list]*/ /*[inspectDynamicDispatch*/ switch(((a1)->id)){ case 153: tmp0/*descriptor*/=(/*RF2*/(((T153*)a1))->_filtered_descriptor/*i8p*/); break; default:; tmp0/*descriptor*/=(/*RF2*/(((T134*)a1))->_descriptor/*i2p*/); } /*inspect]*/ r154expect_readable(C,tmp0/*descriptor*/); }/*--*/ /*EVENTS_SET*/T6 r154can_read(T154* C,T2 a1){ T6 R=0; R=((T6)(sequencer_is_ready((/*RF2*/(C)->_read_set/*12p*/),a1))); return R; }/*--*/ /*EVENTS_SET*/T6 r154is_data(T154* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T2 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; /*[inspectDynamicDispatch*/ switch(((a1)->id)){ case 153: tmp0/*descriptor*/=(/*RF2*/(((T153*)a1))->_filtered_descriptor/*i8p*/); break; default:; tmp0/*descriptor*/=(/*RF2*/(((T134*)a1))->_descriptor/*i2p*/); } /*inspect]*/ R=((T6)(r154can_read(C,tmp0/*descriptor*/))); return R; }/*--*/ /*EVENTS_SET*/void r154make(T154* C){ /*SFN*/(C->_read_set/*12p*/)=sequencer_create_set; /*SFN*/(C->_write_set/*12p*/)=sequencer_create_set; /*SFN*/(C->_exception_set/*12p*/)=sequencer_create_set; r154reset(C); }/*--*/ /*EVENTS_SET*/void r154when_exception(T154* C,T0* a1){ r154expect_exception(C,(/*RF2*/(((T153*)/*no_dispatch.e*/a1))->_filtered_descriptor/*i8p*/)); }/*--*/ /*EVENTS_SET*/T6 r154event_occurred(T154* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; /*[inspectDynamicDispatch*/ switch(((a1)->id)){ case 123: tmp0/*occurred*/=((T6)(r123occurred(((T123*)a1),(T0*)C))); break; default:; tmp0/*occurred*/=((T6)(r113occurred(((T113*)a1),(T0*)C))); } /*inspect]*/ R=((T6)(tmp0/*occurred*/)); return R; }/*--*/ /*EVENTS_SET*/T6 r154is_exception(T154* C,T0* a1){ T6 R=0; R=((T6)(r154has_exception(C,(/*RF2*/(((T153*)/*no_dispatch.e*/a1))->_filtered_descriptor/*i8p*/)))); return R; }/*--*/ /*EVENTS_SET*/void r154wait(T154* C){ T192 _now={{0},0}; T2 _s=0; T2 _us=0; T5 _remaining=0; T2 _status=0; if((/*RF2*/(C)->_expiration_valid/*12p*/)){ r192update(&_now); if(r192_ix_60(&_now,(/*RF2*/(C)->_expiration/*12p*/))){ _remaining=r192elapsed_seconds(&_now,(/*RF2*/(C)->_expiration/*12p*/)); } if((((T5)((/*RF2*/(C)->_timeout/*12p*/)))/(INT32_C(1000)))<(_remaining)){ _remaining=((T5)((/*RF2*/(C)->_timeout/*12p*/)))/(INT32_C(1000)); } } else{ _remaining=((T5)((/*RF2*/(C)->_timeout/*12p*/)))/(INT32_C(1000)); } _s=((int32_t)(floor(_remaining))); _us=((int32_t)(floor(((_remaining)-(/*IC*/(T5)(_s)))*(/*IC*/(T5)(INT32_C(1000000)))))); _status=sequencer_wait(((int32_t)((/*RF2*/(C)->_highest/*12p*/)))+(INT32_C(1)),(/*RF2*/(C)->_read_set/*12p*/),(/*RF2*/(C)->_read_size/*12p*/),(/*RF2*/(C)->_write_set/*12p*/),(/*RF2*/(C)->_write_size/*12p*/),(/*RF2*/(C)->_exception_set/*12p*/),(/*RF2*/(C)->_exception_size/*12p*/),_s,_us); if((_status)==(INT8_C(-1))){ sequencer_reset((/*RF2*/(C)->_read_set/*12p*/)); sequencer_reset((/*RF2*/(C)->_write_set/*12p*/)); sequencer_reset((/*RF2*/(C)->_exception_set/*12p*/)); } /*SFN*/(C->_queryable/*12p*/)=((T6)(1)); /*SFN*/(C->_current_time_valid/*12p*/)=((T6)(0)); }/*--*/ /*EVENTS_SET*/void r154expect_exception(T154* C,T2 a1){ sequencer_watch((/*RF2*/(C)->_exception_set/*12p*/),a1); /*SFN*/(C->_exception_size/*12p*/)=((int32_t)((/*RF2*/(C)->_exception_size/*12p*/)))+(INT32_C(1)); /*SFN*/(C->_highest/*12p*/)=r2max((/*RF2*/(C)->_highest/*12p*/),a1); }/*--*/ /*EVENTS_SET*/void r154reset(T154* C){ /*SFN*/(C->_timeout/*12p*/)=INT32_C(2147483647); /*SFN*/(C->_expiration_valid/*12p*/)=((T6)(0)); /*SFN*/(C->_current_time_valid/*12p*/)=((T6)(0)); sequencer_reset((/*RF2*/(C)->_read_set/*12p*/)); sequencer_reset((/*RF2*/(C)->_write_set/*12p*/)); sequencer_reset((/*RF2*/(C)->_exception_set/*12p*/)); /*SFN*/(C->_highest/*12p*/)=INT32_C(-1); /*SFN*/(C->_read_size/*12p*/)=INT32_C(0); /*SFN*/(C->_write_size/*12p*/)=INT32_C(0); /*SFN*/(C->_exception_size/*12p*/)=INT32_C(0); /*SFN*/(C->_queryable/*12p*/)=((T6)(0)); }/*--*/ /*EVENTS_SET*/void r154expect(T154* C,T0* a1){ /*[inspectDynamicDispatch*/ switch(((a1)->id)){ case 123: r123expect(((T123*)a1),(T0*)C); break; default:; r113expect(((T113*)a1),(T0*)C); } /*inspect]*/ }/*--*/ /*KEY_RANGE*/void r146make(T146* C,T8 a1){ x_key_info_init(a1,/*$*/(void*)&(/*RF2*/(C)->_minimum_code/*3p*/),/*$*/(void*)&(/*RF2*/(C)->_maximum_code/*3p*/),/*$*/(void*)&(/*RF2*/(C)->_key_count/*3p*/)); }/*--*/ /*BUTTON_RANGE*/void r149make(T149* C,T8 a1){ /*SFN*/(C->_buttons_count/*p*/)=x_button_info_num_buttons(a1); }/*--*/ /*AXES_RANGE*/void r148make(T148* C,T8 a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T2 _nb_axes=0; x_valuator_info_init(a1,/*$*/(void*)&_nb_axes,/*$*/(void*)&(/*RF2*/(C)->_absolute/*5p*/),/*$*/(void*)&(/*RF2*/(C)->_motion_buffer_size/*5p*/)); tmp0/*new*/=((T0*)(new259())); r259make(((T259*)tmp0/*new*/),_nb_axes); /*SFN*/(C->_minimums/*5p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new259())); r259make(((T259*)tmp0/*new*/),_nb_axes); /*SFN*/(C->_maximums/*5p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new259())); r259make(((T259*)tmp0/*new*/),_nb_axes); /*SFN*/(C->_resolutions/*5p*/)=tmp0/*new*/; /*tmp0.unlock*/ _nb_axes=((int32_t)(_nb_axes))-(INT32_C(1)); while(!(((int32_t)(_nb_axes))<(INT32_C(0)))) { ((/*RF2*/((T259*)((/*RF2*/(C)->_resolutions/*5p*/)))->_storage/*3p*/))[_nb_axes]=(x_valuator_info_resolution(a1,_nb_axes)); ((/*RF2*/((T259*)((/*RF2*/(C)->_minimums/*5p*/)))->_storage/*3p*/))[_nb_axes]=(x_valuator_info_minimum(a1,_nb_axes)); ((/*RF2*/((T259*)((/*RF2*/(C)->_maximums/*5p*/)))->_storage/*3p*/))[_nb_axes]=(x_valuator_info_maximum(a1,_nb_axes)); _nb_axes=((int32_t)(_nb_axes))-(INT32_C(1)); } }/*--*/ /*IVY_CLIENT*/void r153process_incomming_data(T153* C){ read_callback((/*RF2*/(C)->_read_function/*i8p*/),(T0*)C,(/*RF2*/(C)->_filtered_descriptor/*i8p*/),(/*RF2*/(C)->_data/*i8p*/)); }/*--*/ /*IVY_CLIENT*/T0* r153event_can_read(T153* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; R=(/*RF2*/(C)->_can_read/*i8p*/); if((R)==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new123())); r123make(((T123*)tmp0/*new*/),(T0*)C); /*SFN*/(C->_can_read/*i8p*/)=tmp0/*new*/; /*tmp0.unlock*/ R=(/*RF2*/(C)->_can_read/*i8p*/); } return R; }/*--*/ /*IVY_CLIENT*/void r153make(T153* C,T2 a1,T8 a2,T8 a3,T8 a4,T8 a5){ /*SFN*/(C->_filtered_descriptor/*i8p*/)=a1; /*SFN*/(C->_data/*i8p*/)=a2; /*SFN*/(C->_delete_function/*i8p*/)=a3; /*SFN*/(C->_read_function/*i8p*/)=a4; /*SFN*/(C->_write_function/*i8p*/)=a5; /*SFN*/(C->_is_connected/*i8p*/)=((T6)(1)); }/*--*/ /*IVY_CLIENT*/void r153disconnect(T153* C){ if((NULL!=(/*RF2*/(C)->_delete_function/*i8p*/))){ delete_callback((/*RF2*/(C)->_delete_function/*i8p*/),(/*RF2*/(C)->_data/*i8p*/)); } /*SFN*/(C->_is_connected/*i8p*/)=((T6)(0)); }/*--*/ /*IVY_CLIENT*/void r153dispose(T153* C){ if((/*RF2*/(C)->_is_connected/*i8p*/)){ r153disconnect(C); } }/*--*/ /*IVY_CLIENT*/T0* r153event_exception(T153* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; R=(/*RF2*/(C)->_stream_exception/*i8p*/); if((R)==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new113())); r113make(((T113*)tmp0/*new*/),(T0*)C); /*SFN*/(C->_stream_exception/*i8p*/)=tmp0/*new*/; /*tmp0.unlock*/ R=(/*RF2*/(C)->_stream_exception/*i8p*/); } return R; }/*--*/ T155*create155make(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ tmp0/*new*/=((T0*)(new155())); r155make(((T155*)tmp0/*new*/)); return ((T155*)tmp0/*new*/); /*tmp0.unlock*/ }/*--*/ /*LOOP_ITEM*/void r155make(T155* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ tmp0/*new*/=((T0*)(new280())); r280make(((T280*)tmp0/*new*/),INT32_C(0)); /*SFN*/(C->_job_list/*6p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new280())); r280make(((T280*)tmp0/*new*/),INT32_C(0)); /*SFN*/(C->_finished_jobs/*6p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new280())); r280make(((T280*)tmp0/*new*/),INT32_C(0)); /*SFN*/(C->_ready_jobs/*6p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new154())); r154make(((T154*)tmp0/*new*/)); /*SFN*/(C->_events/*6p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*SFN*/(C->_pause/*6p*/)=((T6)(1)); }/*--*/ /*LOOP_ITEM*/void r155add_job(T155* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; T2 tmp1; T2 tmp2; /*INTERNAL_C_LOCAL list]*/ T2 _i=0; _i=INT32_C(0); while(1){ tmp0/*or else*/=((T6)(((int32_t)(_i))>((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_upper/*3p*/)))); if(tmp0/*or else*/){ } else{ /*[inspectDynamicDispatch*/ switch(((((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_storage/*3p*/))[_i])->id)){ case 131: tmp1/*priority*/=(/*RF2*/(((T131*)((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_storage/*3p*/))[_i]))->_priority/*i11p*/); break; default:; tmp1/*priority*/=(/*RF2*/(((T71*)((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_storage/*3p*/))[_i]))->_priority/*i11p*/); } /*inspect]*/ /*[inspectDynamicDispatch*/ switch(((a1)->id)){ case 131: tmp2/*priority*/=(/*RF2*/(((T131*)a1))->_priority/*i11p*/); break; default:; tmp2/*priority*/=(/*RF2*/(((T71*)a1))->_priority/*i11p*/); } /*inspect]*/ tmp0/*or else*/=((T6)(((int32_t)(tmp1/*priority*/))>(tmp2/*priority*/))); } if(tmp0/*or else*/){ break; } _i=((int32_t)(_i))+(INT32_C(1)); } r280add((T280*)((/*RF2*/(C)->_job_list/*6p*/)),a1,_i); }/*--*/ /*LOOP_ITEM*/void r155run(T155* C){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; T6 tmp1; T6 tmp2; T6 tmp3; T6 tmp4; T2 tmp5; T6 tmp6; /*INTERNAL_C_LOCAL list]*/ T2 _i=0; T2 _selected_priority=0; T0* _job=(void*)0; /*SFN*/(C->_pause/*6p*/)=((T6)(0)); /*SFN*/(C->_break/*6p*/)=((T6)(0)); while(1){ tmp0/*or else*/=((T6)((/*RF2*/(C)->_pause/*6p*/))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)((/*RF2*/(C)->_break/*6p*/))); } tmp1/*or else*/=((T6)(tmp0/*or else*/)); if(tmp1/*or else*/){ } else{ tmp1/*or else*/=((T6)(r280is_empty((T280*)((/*RF2*/(C)->_job_list/*6p*/))))); } if(tmp1/*or else*/){ break; } _i=INT32_C(0); r154reset((T154*)((/*RF2*/(C)->_events/*6p*/))); while(!(((int32_t)(_i))>((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_upper/*3p*/)))) { _job=((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_storage/*3p*/))[_i]; /*[inspectDynamicDispatch*/ switch(((_job)->id)){ case 131: tmp2/*done*/=((T6)((/*RF2*/(((T131*)_job))->_done/*i11p*/))); break; default:; tmp2/*done*/=((T6)((/*RF2*/(((T71*)_job))->_done/*i11p*/))); } /*inspect]*/ if(tmp2/*done*/){ r280remove((T280*)((/*RF2*/(C)->_job_list/*6p*/)),_i); r280add_last((T280*)((/*RF2*/(C)->_finished_jobs/*6p*/)),_job); } else{ /*[inspectDynamicDispatch*/ switch(((_job)->id)){ case 131: r131prepare(((T131*)_job),(/*RF2*/(C)->_events/*6p*/)); break; default:; r71prepare(((T71*)_job),(/*RF2*/(C)->_events/*6p*/)); } /*inspect]*/ _i=((int32_t)(_i))+(INT32_C(1)); } } if((r280is_empty((T280*)((/*RF2*/(C)->_job_list/*6p*/))))==(0)){ r154wait((T154*)((/*RF2*/(C)->_events/*6p*/))); _i=INT32_C(0); _selected_priority=INT32_MIN; (/*RF2*/((T280*)((/*RF2*/(C)->_ready_jobs/*6p*/)))->_upper/*3p*/)=INT32_C(-1); while(1){ tmp3/*or else*/=((T6)(((int32_t)(_i))>((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_upper/*3p*/)))); if(tmp3/*or else*/){ } else{ tmp3/*or else*/=((T6)((_selected_priority)!=(INT32_MIN))); } if(tmp3/*or else*/){ break; } _job=((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_storage/*3p*/))[_i]; /*[inspectDynamicDispatch*/ switch(((_job)->id)){ case 131: tmp4/*is_ready*/=((T6)(r131is_ready(((T131*)_job),(/*RF2*/(C)->_events/*6p*/)))); break; default:; tmp4/*is_ready*/=((T6)(r71is_ready(((T71*)_job),(/*RF2*/(C)->_events/*6p*/)))); } /*inspect]*/ if(tmp4/*is_ready*/){ /*[inspectDynamicDispatch*/ switch(((_job)->id)){ case 131: tmp5/*priority*/=(/*RF2*/(((T131*)_job))->_priority/*i11p*/); break; default:; tmp5/*priority*/=(/*RF2*/(((T71*)_job))->_priority/*i11p*/); } /*inspect]*/ _selected_priority=tmp5/*priority*/; r280add_last((T280*)((/*RF2*/(C)->_ready_jobs/*6p*/)),_job); } _i=((int32_t)(_i))+(INT32_C(1)); } while(1){ /*auto-unlock tmp4*/tmp4/*or else*/=((T6)(((int32_t)(_i))>((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_upper/*3p*/)))); if(tmp4/*or else*/){ } else{ /*[inspectDynamicDispatch*/ switch(((((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_storage/*3p*/))[_i])->id)){ case 131: /*auto-unlock tmp5*/tmp5/*priority*/=(/*RF2*/(((T131*)((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_storage/*3p*/))[_i]))->_priority/*i11p*/); break; default:; tmp5/*priority*/=(/*RF2*/(((T71*)((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_storage/*3p*/))[_i]))->_priority/*i11p*/); } /*inspect]*/ tmp4/*or else*/=((T6)((tmp5/*priority*/)!=(_selected_priority))); } if(tmp4/*or else*/){ break; } _job=((/*RF2*/((T280*)((/*RF2*/(C)->_job_list/*6p*/)))->_storage/*3p*/))[_i]; /*[inspectDynamicDispatch*/ switch(((_job)->id)){ case 131: tmp6/*is_ready*/=((T6)(r131is_ready(((T131*)_job),(/*RF2*/(C)->_events/*6p*/)))); break; default:; tmp6/*is_ready*/=((T6)(r71is_ready(((T71*)_job),(/*RF2*/(C)->_events/*6p*/)))); } /*inspect]*/ if(tmp6/*is_ready*/){ r280add_last((T280*)((/*RF2*/(C)->_ready_jobs/*6p*/)),_job); } _i=((int32_t)(_i))+(INT32_C(1)); } _i=(/*RF2*/((T280*)((/*RF2*/(C)->_ready_jobs/*6p*/)))->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { /*[inspectDynamicDispatch*/ switch(((((/*RF2*/((T280*)((/*RF2*/(C)->_ready_jobs/*6p*/)))->_storage/*3p*/))[_i])->id)){ case 131: r131continue(((T131*)((/*RF2*/((T280*)((/*RF2*/(C)->_ready_jobs/*6p*/)))->_storage/*3p*/))[_i])); break; default:; r71continue(((T71*)((/*RF2*/((T280*)((/*RF2*/(C)->_ready_jobs/*6p*/)))->_storage/*3p*/))[_i])); } /*inspect]*/ _i=((int32_t)(_i))-(INT32_C(1)); } } } }/*--*/ /*ROOT_WINDOW*/void r73default_create(T73* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ r73container_init(C); /*SFN*/(C->_width/*9p*/)=(/*RF2*/((T65*)(r73vision()))->_display_width/*6p*/); /*SFN*/(C->_height/*9p*/)=(/*RF2*/((T65*)(r73vision()))->_display_height/*6p*/); /*SFN*/(C->_min_width/*9p*/)=(/*RF2*/(C)->_width/*9p*/); /*SFN*/(C->_min_height/*9p*/)=(/*RF2*/(C)->_height/*9p*/); /*SFN*/(C->_std_width/*9p*/)=(/*RF2*/(C)->_width/*9p*/); /*SFN*/(C->_std_height/*9p*/)=(/*RF2*/(C)->_height/*9p*/); tmp0/*new*/=((T0*)(new160())); /*SFN*/(C->_layout/*9p*/)=tmp0/*new*/; /*tmp0.unlock*/ (/*RF2*/(((T160*)/*no_dispatch.e*/(/*RF2*/(C)->_layout/*9p*/)))->_container/*p*/)=((T0*)(C)); /*SFN*/(C->_widget/*9p*/)=basic_window_root_id; r65register((T65*)(r73vision()),(T0*)C); }/*--*/ T0*oBC26vision=(void*)0; int fBC26vision=0; /*ROOT_WINDOW*/T0* r73vision(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ if(fBC26vision==0){fBC26vision=1;{ tmp0/*new*/=((T0*)(new65())); r65graphic_init(((T65*)tmp0/*new*/)); oBC26vision=tmp0/*new*/; /*tmp0.unlock*/ }} return oBC26vision; }/*--*/ /*ROOT_WINDOW*/T2 r73hash_code(T73* C){ T2 R=0; R=r8hash_code((/*RF2*/(C)->_widget/*9p*/)); return R; }/*--*/ /*ROOT_WINDOW*/void r73container_init(T73* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ tmp0/*new*/=((T0*)(new279())); r279make(((T279*)tmp0/*new*/),INT32_C(0)); /*SFN*/(C->_child/*9p*/)=tmp0/*new*/; /*tmp0.unlock*/ }/*--*/ /*GRAPHIC_CONNECTION*/T0* r134event_can_read(T134* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; R=(/*RF2*/(C)->_can_read/*i2p*/); if((R)==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new123())); r123make(((T123*)tmp0/*new*/),(T0*)C); /*SFN*/(C->_can_read/*i2p*/)=tmp0/*new*/; /*tmp0.unlock*/ R=(/*RF2*/(C)->_can_read/*i2p*/); } return R; }/*--*/ /*GRAPHIC_CONNECTION*/void r134set_descriptor(T134* C,T2 a1){ /*SFN*/(C->_descriptor/*i2p*/)=a1; }/*--*/ /*VISION_LOOP_STACK*/void r133make(T133* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ r133_P_132_make(C); tmp0/*new*/=((T0*)(new277())); r277make(((T277*)tmp0/*new*/),INT32_C(0)); /*SFN*/(C->_event_catcher_stack/*4p*/)=tmp0/*new*/; /*tmp0.unlock*/ }/*--*/ /*VISION_LOOP_STACK*/T0* r133current_loop(T133* C){ T0* R=(void*)0; if((r248is_empty((T248*)((/*RF2*/(C)->_loop_stack/*4p*/))))==(0)){ R=r248last((T248*)((/*RF2*/(C)->_loop_stack/*4p*/))); } return R; }/*--*/ /*VISION_LOOP_STACK*/void r133run(T133* C){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ /*SFN*/(C->_stop/*4p*/)=((T6)(0)); while(1){ tmp0/*or else*/=((T6)((/*RF2*/(C)->_stop/*4p*/))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(r248is_empty((T248*)((/*RF2*/(C)->_loop_stack/*4p*/))))); } if(tmp0/*or else*/){ break; } r155run((T155*)(r133current_loop(C))); if((r133current_loop(C))!=((void*)((void*)0))){ if(((/*RF2*/((T155*)(r133current_loop(C)))->_pause/*6p*/))==(0)){ r248remove_last((T248*)((/*RF2*/(C)->_loop_stack/*4p*/))); } } } }/*--*/ /*VISION_LOOP_STACK*/void r133_P_132_make(T133* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ tmp0/*new*/=((T0*)(new248())); r248make(((T248*)tmp0/*new*/),INT32_C(0)); /*SFN*/(C->_loop_stack/*4p*/)=tmp0/*new*/; /*tmp0.unlock*/ r248add_last((T248*)((/*RF2*/(C)->_loop_stack/*4p*/)),((T0*)create155make())); }/*--*/ /*EVENT_CATCHER*/T0* r131vision(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ if(fBC26vision==0){fBC26vision=1;{ tmp0/*new*/=((T0*)(new65())); r65graphic_init(((T65*)tmp0/*new*/)); oBC26vision=tmp0/*new*/; /*tmp0.unlock*/ }} return oBC26vision; }/*--*/ /*EVENT_CATCHER*/void r131make(T131* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* _ev=(void*)0; T2 _i=0; /*SFN*/(C->_graphic_connection/*i11p*/)=a1; tmp0/*new*/=((T0*)(new276())); r276make(((T276*)tmp0/*new*/)); /*SFN*/(C->_widget/*i11p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new273())); r273make(((T273*)tmp0/*new*/),INT32_C(65)); /*SFN*/(C->_event/*i11p*/)=tmp0/*new*/; /*tmp0.unlock*/ _i=(/*RF2*/((T273*)((/*RF2*/(C)->_event/*i11p*/)))->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { /*reusing tmp0*/tmp0/*new*/=((T0*)(new275())); r275make(((T275*)tmp0/*new*/)); _ev=tmp0/*new*/; /*tmp0.unlock*/ ((/*RF2*/((T273*)((/*RF2*/(C)->_event/*i11p*/)))->_storage/*3p*/))[_i]=(_ev); _i=((int32_t)(_i))-(INT32_C(1)); } /*reusing tmp0*/tmp0/*new*/=((T0*)(new271())); r271make(((T271*)tmp0/*new*/)); /*SFN*/(C->_pointer_move_event/*i11p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new269())); r269make(((T269*)tmp0/*new*/)); /*SFN*/(C->_geometry_change_event/*i11p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new268())); r268make(((T268*)tmp0/*new*/)); /*SFN*/(C->_extension_devices/*i11p*/)=tmp0/*new*/; /*tmp0.unlock*/ }/*--*/ /*EVENT_CATCHER*/void r131prepare(T131* C,T0* a1){ basic_vision_flush; r154expect(((T154*)a1),r134event_can_read((T134*)((/*RF2*/(C)->_graphic_connection/*i11p*/)))); }/*--*/ /*EVENT_CATCHER*/T6 r131is_ready(T131* C,T0* a1){ T6 R=0; R=((T6)(r154event_occurred(((T154*)a1),r134event_can_read((T134*)((/*RF2*/(C)->_graphic_connection/*i11p*/)))))); return R; }/*--*/ /*EVENT_CATCHER*/void r131continue(T131* C){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; T6 tmp1; T6 tmp2; /*INTERNAL_C_LOCAL list]*/ T2 _next_event=0; T0* _s=(void*)0; T8 _c_widget=(void*)0; _next_event=basic_vision_next_event; /*SFN*/(C->_current_event_type/*i11p*/)=_next_event; /*SFN*/(C->_suspend/*i11p*/)=((T6)(0)); while(1){ tmp0/*or else*/=((T6)((_next_event)==(INT8_C(-1)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)((/*RF2*/(C)->_suspend/*i11p*/))); } if(tmp0/*or else*/){ break; } _c_widget=basic_vision_event_widget; _s=r276reference_at((T276*)((/*RF2*/(C)->_widget/*i11p*/)),_c_widget); if((_s)!=((void*)((void*)0))){ r131emit_event(C,_s,_next_event); } else{ tmp1/*and then*/=((T6)(((int32_t)(_next_event))>(INT32_C(3)))); if(tmp1/*and then*/){ tmp1/*and then*/=((T6)((r2in_range(_next_event,INT32_C(40),INT32_C(59)))==(0))); } tmp2/*and then*/=((T6)(tmp1/*and then*/)); if(tmp2/*and then*/){ tmp2/*and then*/=((T6)((_next_event)!=(INT8_C(100)))); } if(tmp2/*and then*/){ _s=r131search_widget(C,_c_widget); if((_s)!=((void*)((void*)0))){ r131emit_event((T131*)((/*RF2*/(C)->_event_catcher_found/*i11p*/)),_s,_next_event); } } } _next_event=basic_vision_next_event; /*SFN*/(C->_current_event_type/*i11p*/)=_next_event; } }/*--*/ /*EVENT_CATCHER*/void r131add_extension(T131* C,T0* a1){ r268put((T268*)((/*RF2*/(C)->_extension_devices/*i11p*/)),a1,(/*RF2*/(((T68*)/*no_dispatch.e*/a1))->_device_id/*14p*/)); }/*--*/ /*EVENT_CATCHER*/T0* r131search_widget(T131* C,T8 a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; T0* _stack=(void*)0; T0* _ls=(void*)0; T2 _i=0; _ls=(/*RF2*/((T65*)(r131vision()))->_loop_stack/*6p*/); _stack=(/*RF2*/(((T133*)_ls))->_event_catcher_stack/*4p*/); _i=(/*RF2*/(((T277*)_stack))->_upper/*3p*/); while(1){ tmp0/*or else*/=((T6)((R)!=((void*)((void*)0)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(((int32_t)(_i))<(INT32_C(0)))); } if(tmp0/*or else*/){ break; } R=r276reference_at((T276*)((/*RF2*/((T131*)(((/*RF2*/(((T277*)_stack))->_storage/*3p*/))[_i]))->_widget/*i11p*/)),a1); _i=((int32_t)(_i))-(INT32_C(1)); } if((R)!=((void*)((void*)0))){ /*SFN*/(C->_event_catcher_found/*i11p*/)=((/*RF2*/(((T277*)_stack))->_storage/*3p*/))[((int32_t)(_i))+(INT32_C(1))]; } return R; }/*--*/ /*EVENT_CATCHER*/void r131emit_event(T131* C,T0* a1,T2 a2){ T0* _sig0=(void*)0; T0* _sig2=(void*)0; T0* _sig4=(void*)0; T0* _win=(void*)0; T0* _ext_device=(void*)0; if(((int32_t)(a2))<(INT32_C(100))){ _sig0=r275reference_at(((T275*)/*no_dispatch.e*/((/*RF2*/((T273*)((/*RF2*/(C)->_event/*i11p*/)))->_storage/*3p*/))[a2]),a1); } else{ /*[inspect*/ switch(a2){ case 100: _sig2=r271reference_at((T271*)((/*RF2*/(C)->_pointer_move_event/*i11p*/)),a1); break; case 110: _ext_device=r268reference_at((T268*)((/*RF2*/(C)->_extension_devices/*i11p*/)),basic_vision_extension_device_id); if((_ext_device)!=((void*)((void*)0))){ r68handle_event(((T68*)/*no_dispatch.e*/_ext_device),basic_vision_real_event,a1); } break; default:; _sig4=r269reference_at((T269*)((/*RF2*/(C)->_geometry_change_event/*i11p*/)),a1); } /*inspect]*/ } }/*--*/ /*STD_OUTPUT*/void r53filtered_flush(T53* C){ if(((int32_t)((/*RF2*/(C)->_buffer_position/*3p*/)))>(INT32_C(0))){ r53write_buffer(C); } io_flush((stdout)); }/*--*/ /*STD_OUTPUT*/void r53filtered_put_character(T53* C,T3 a1){ if(((int32_t)((/*RF2*/(C)->_buffer_position/*3p*/)))>=(INT32_C(4096))){ r53write_buffer(C); } ((/*RF2*/(C)->_buffer/*3p*/))[(/*RF2*/(C)->_buffer_position/*3p*/)]=(a1); /*SFN*/(C->_buffer_position/*3p*/)=((int32_t)((/*RF2*/(C)->_buffer_position/*3p*/)))+(INT32_C(1)); if((a1)==(((T3)'\n'))){ r53write_buffer(C); } }/*--*/ T0*oBC13std_output=(void*)0; int fBC13std_output=0; /*STD_OUTPUT*/T0* r53std_output(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ if(fBC13std_output==0){fBC13std_output=1;{ tmp0/*new*/=((T0*)(new53())); r53make(((T53*)tmp0/*new*/)); oBC13std_output=tmp0/*new*/; /*tmp0.unlock*/ }} return oBC13std_output; }/*--*/ /*STD_OUTPUT*/void r53se_atexit(void){ r53filtered_flush((T53*)(r53std_output())); }/*--*/ /*STD_OUTPUT*/void r53make(T53* C){ /*SFN*/(C->_buffer/*3p*/)=new9(INT32_C(4096)); /*SFN*/(C->_capacity/*3p*/)=INT32_C(4096); }/*--*/ /*STD_OUTPUT*/void r53write_buffer(T53* C){ T2 _unused_result=0; if(((int32_t)((/*RF2*/(C)->_buffer_position/*3p*/)))>(INT32_C(0))){ _unused_result=io_fwrite((/*RF2*/(C)->_buffer/*3p*/),(/*RF2*/(C)->_buffer_position/*3p*/),(stdout)); /*SFN*/(C->_buffer_position/*3p*/)=INT32_C(0); } }/*--*/ /*STD_OUTPUT*/void r53flush(T53* C){ r53filtered_flush(C); }/*--*/ /*STD_OUTPUT*/void r53put_string(T53* C,T0* a1){ T2 _i=0; T2 _count=0; _i=INT32_C(1); _count=(/*RF2*/(((T7*)a1))->_count/*3p*/); while(!(((int32_t)(_i))>(_count))) { r53filtered_put_character(C,r7item(((T7*)a1),_i)); _i=((int32_t)(_i))+(INT32_C(1)); } }/*--*/ /*STD_OUTPUT*/void r53put_line(T53* C,T0* a1){ T2 _unused_result=0; r53write_buffer(C); r7add_last(((T7*)a1),((T3)'\n')); _unused_result=io_fwrite((/*RF2*/(((T7*)a1))->_storage/*3p*/),(/*RF2*/(((T7*)a1))->_count/*3p*/),(stdout)); r7remove_last(((T7*)a1)); }/*--*/ /*STD_INPUT_OUTPUT*/T0* r46std_output(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ if(fBC13std_output==0){fBC13std_output=1;{ tmp0/*new*/=((T0*)(new53())); r53make(((T53*)tmp0/*new*/)); oBC13std_output=tmp0/*new*/; /*tmp0.unlock*/ }} return oBC13std_output; }/*--*/ /*STD_INPUT_OUTPUT*/void r46put_string(T0* a1){ T2 _i=0; T2 _count=0; _i=INT32_C(1); _count=(/*RF2*/(((T7*)a1))->_count/*3p*/); while(!(((int32_t)(_i))>(_count))) { r53filtered_put_character((T53*)(r46std_output()),r7item(((T7*)a1),_i)); _i=((int32_t)(_i))+(INT32_C(1)); } }/*--*/ /*STD_INPUT_OUTPUT*/void r46put_line(T0* a1){ r46put_string(a1); r53filtered_put_character((T53*)(r46std_output()),((T3)'\n')); }/*--*/ /*X_INPUT_EXTENSION*/void r191make(T191* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T2 _size=0; T2 _i=0; T8 _device_list=(void*)0; T0* _device=(void*)0; _device_list=x_list_input_devices(/*$*/(void*)&_size); tmp0/*new*/=((T0*)(new247())); r247make(((T247*)tmp0/*new*/),_size); /*SFN*/(C->_devices/*p*/)=tmp0/*new*/; /*tmp0.unlock*/ _i=INT32_C(0); while(!(((int32_t)(_i))>=(_size))) { /*reusing tmp0*/tmp0/*new*/=((T0*)(new68())); r68make(((T68*)tmp0/*new*/),_device_list,_i); _device=tmp0/*new*/; /*tmp0.unlock*/ ((/*RF2*/((T247*)((/*RF2*/(C)->_devices/*p*/)))->_storage/*3p*/))[_i]=(_device); _i=((int32_t)(_i))+(INT32_C(1)); } XFreeDeviceList(_device_list); }/*--*/ /*X11*/void r150default_create(void){ T0* _v=(void*)0; _v=r150vision(); }/*--*/ /*X11*/T0* r150vision(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ if(fBC26vision==0){fBC26vision=1;{ tmp0/*new*/=((T0*)(new65())); r65graphic_init(((T65*)tmp0/*new*/)); oBC26vision=tmp0/*new*/; /*tmp0.unlock*/ }} return oBC26vision; }/*--*/ T0*oBC150x_input_extension=(void*)0; int fBC150x_input_extension=0; /*X11*/T0* r150x_input_extension(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ if(fBC150x_input_extension==0){fBC150x_input_extension=1;{ tmp0/*new*/=((T0*)(new191())); r191make(((T191*)tmp0/*new*/)); oBC150x_input_extension=tmp0/*new*/; /*tmp0.unlock*/ }} return oBC150x_input_extension; }/*--*/ /*X11*/T6 r150has_x_input_extension(void){ T6 R=0; R=((T6)(x_query_extension(r7to_external(((T7*)ms150_1472358418))))); return R; }/*--*/ /*X11*/T0* r150get_atom_name(T2 a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; T8 _name=(void*)0; if((a1)!=(INT8_C(0))){ _name=x_get_atom_name(a1); tmp0/*new*/=((T0*)(new7())); r7from_external_copy(((T7*)tmp0/*new*/),_name); R=tmp0/*new*/; /*tmp0.unlock*/ XFree(_name); } return R; }/*--*/ /*X_INPUT_DEVICE*/T0* r68vision(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ if(fBC26vision==0){fBC26vision=1;{ tmp0/*new*/=((T0*)(new65())); r65graphic_init(((T65*)tmp0/*new*/)); oBC26vision=tmp0/*new*/; /*tmp0.unlock*/ }} return oBC26vision; }/*--*/ /*X_INPUT_DEVICE*/void r68make(T68* C,T8 a1,T2 a2){ /*[INTERNAL_C_LOCAL list*/ int tmp0; T0* tmp1; /*INTERNAL_C_LOCAL list]*/ int _x11=0; T8 _current_class_info=(void*)0; T2 _i=0; T0* _key=(void*)0; T0* _button=(void*)0; T0* _axes=(void*)0; tmp0/*locexp*/=M150; r150default_create(); _x11=tmp0/*locexp*/; /*tmp0.unlock*/ tmp1/*new*/=((T0*)(new7())); r7from_external_copy(((T7*)tmp1/*new*/),x_device_info_name(a1,a2)); /*SFN*/(C->_name/*14p*/)=tmp1/*new*/; /*tmp1.unlock*/ /*SFN*/(C->_device_id/*14p*/)=x_device_info_id(a1,a2); /*SFN*/(C->_type/*14p*/)=r150get_atom_name(x_device_info_type(a1,a2)); /*SFN*/(C->_is_current_pointer/*14p*/)=((T6)(x_device_info_is_pointer(a1,a2))); /*SFN*/(C->_is_current_keyboard/*14p*/)=((T6)(x_device_info_is_keyboard(a1,a2))); /*SFN*/(C->_is_available_extension/*14p*/)=((T6)(x_device_info_is_available_extension(a1,a2))); /*reusing tmp1*/tmp1/*new*/=((T0*)(new267())); r267make(((T267*)tmp1/*new*/),INT32_C(0)); /*SFN*/(C->_key_capabilities/*14p*/)=tmp1/*new*/; /*tmp1.unlock*/ /*reusing tmp1*/tmp1/*new*/=((T0*)(new266())); r266make(((T266*)tmp1/*new*/),INT32_C(0)); /*SFN*/(C->_button_capabilities/*14p*/)=tmp1/*new*/; /*tmp1.unlock*/ /*reusing tmp1*/tmp1/*new*/=((T0*)(new265())); r265make(((T265*)tmp1/*new*/),INT32_C(0)); /*SFN*/(C->_axes_capabilities/*14p*/)=tmp1/*new*/; /*tmp1.unlock*/ _i=x_device_info_num_classes(a1,a2); _current_class_info=x_device_info_class_info(a1,a2); while(!((_i)==(INT8_C(0)))) { if(x_is_key_class_info(_current_class_info)){ /*reusing tmp1*/tmp1/*new*/=((T0*)(new146())); r146make(((T146*)tmp1/*new*/),_current_class_info); _key=tmp1/*new*/; /*tmp1.unlock*/ r267add_last((T267*)((/*RF2*/(C)->_key_capabilities/*14p*/)),_key); } else{ if(x_is_button_class_info(_current_class_info)){ /*reusing tmp1*/tmp1/*new*/=((T0*)(new149())); r149make(((T149*)tmp1/*new*/),_current_class_info); _button=tmp1/*new*/; /*tmp1.unlock*/ r266add_last((T266*)((/*RF2*/(C)->_button_capabilities/*14p*/)),_button); } else{ /*reusing tmp1*/tmp1/*new*/=((T0*)(new148())); r148make(((T148*)tmp1/*new*/),_current_class_info); _axes=tmp1/*new*/; /*tmp1.unlock*/ r265add_last((T265*)((/*RF2*/(C)->_axes_capabilities/*14p*/)),_axes); } } _current_class_info=x_next_class_info(_current_class_info); _i=((int32_t)(_i))-(INT32_C(1)); } /*reusing tmp1*/tmp1/*new*/=((T0*)(new263())); r263make(((T263*)tmp1/*new*/)); /*SFN*/(C->_actions/*14p*/)=tmp1/*new*/; /*tmp1.unlock*/ /*reusing tmp1*/tmp1/*new*/=((T0*)(new260())); r260make(((T260*)tmp1/*new*/)); /*SFN*/(C->_events_indexes/*14p*/)=tmp1/*new*/; /*tmp1.unlock*/ /*reusing tmp1*/tmp1/*new*/=((T0*)(new259())); r259make(((T259*)tmp1/*new*/),INT32_C(7)); /*SFN*/(C->_events_id/*14p*/)=tmp1/*new*/; /*tmp1.unlock*/ }/*--*/ /*X_INPUT_DEVICE*/void r68handle_event(T68* C,T2 a1,T0* a2){ T2 _event_index=0; T0* _action_list=(void*)0; T0* _signal=(void*)0; _event_index=r260at((T260*)((/*RF2*/(C)->_events_indexes/*14p*/)),a1); _action_list=r263reference_at((T263*)((/*RF2*/(C)->_actions/*14p*/)),a2); if((_action_list)!=((void*)((void*)0))){ _signal=((/*RF2*/(((T262*)_action_list))->_storage/*3p*/))[_event_index]; if((_signal)!=((void*)((void*)0))){ r261emit(((T261*)_signal),(T0*)C); } } }/*--*/ /*X_INPUT_DEVICE*/void r68when_proximity_out(T68* C,T0* a1,T0* a2){ r68when_event(C,INT32_C(6),a1,a2); }/*--*/ /*X_INPUT_DEVICE*/void r68connect(T68* C){ T2 _i=0; r131add_extension((T131*)((/*RF2*/((T65*)(r68vision()))->_event_catcher/*6p*/)),(T0*)C); /*SFN*/(C->_x_device/*14p*/)=x_open_device((/*RF2*/(C)->_device_id/*14p*/)); /*SFN*/(C->_events_classes/*14p*/)=x_device_init_events((/*RF2*/(C)->_x_device/*14p*/),((void*)((/*RF2*/((T259*)((/*RF2*/(C)->_events_id/*14p*/)))->_storage/*3p*/)))); _i=(/*RF2*/((T259*)((/*RF2*/(C)->_events_id/*14p*/)))->_upper/*3p*/); while(!(((int32_t)(_i))<(INT32_C(0)))) { r260put((T260*)((/*RF2*/(C)->_events_indexes/*14p*/)),_i,((/*RF2*/((T259*)((/*RF2*/(C)->_events_id/*14p*/)))->_storage/*3p*/))[_i]); _i=((int32_t)(_i))-(INT32_C(1)); } }/*--*/ /*X_INPUT_DEVICE*/void r68when_button_released(T68* C,T0* a1,T0* a2){ r68when_event(C,INT32_C(3),a1,a2); }/*--*/ /*X_INPUT_DEVICE*/void r68when_event(T68* C,T2 a1,T0* a2,T0* a3){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* _action_list=(void*)0; T0* _signal=(void*)0; _action_list=r263reference_at((T263*)((/*RF2*/(C)->_actions/*14p*/)),a2); if((_action_list)==((void*)((void*)0))){ tmp0/*new*/=((T0*)(new262())); r262make(((T262*)tmp0/*new*/),r259count((T259*)((/*RF2*/(C)->_events_id/*14p*/)))); _action_list=tmp0/*new*/; /*tmp0.unlock*/ r263add((T263*)((/*RF2*/(C)->_actions/*14p*/)),_action_list,a2); x_device_select_events((/*RF2*/(((T73*)/*no_dispatch.e*/a2))->_widget/*9p*/),(/*RF2*/(C)->_events_classes/*14p*/)); } _signal=((/*RF2*/(((T262*)_action_list))->_storage/*3p*/))[a1]; if((_signal)==((void*)((void*)0))){ /*reusing tmp0*/tmp0/*new*/=((T0*)(new261())); r261make(((T261*)tmp0/*new*/)); _signal=tmp0/*new*/; /*tmp0.unlock*/ ((/*RF2*/(((T262*)_action_list))->_storage/*3p*/))[a1]=(_signal); } r298add_last((T298*)((/*RF2*/(((T261*)_signal))->_callbacks/*3p*/)),a3); }/*--*/ /*X_INPUT_DEVICE*/void r68when_moved(T68* C,T0* a1,T0* a2){ r68when_event(C,INT32_C(4),a1,a2); }/*--*/ /*X_INPUT_DEVICE*/T2 r68proximity_axis_data(T2 a1){ T2 R=0; R=x_device_proximity_event_data(((int32_t)(a1))-(INT32_C(1))); return R; }/*--*/ /*X_INPUT_DEVICE*/void r68when_button_pressed(T68* C,T0* a1,T0* a2){ r68when_event(C,INT32_C(2),a1,a2); }/*--*/ /*X_INPUT_DEVICE*/T2 r68motion_axis_data(T2 a1){ T2 R=0; R=x_device_motion_event_data(((int32_t)(a1))-(INT32_C(1))); return R; }/*--*/ /*X_INPUT_DEVICE*/void r68when_proximity_in(T68* C,T0* a1,T0* a2){ r68when_event(C,INT32_C(5),a1,a2); }/*--*/ /*STD_ERROR*/void r43put_string(T0* a1){ T2 _i=0; T2 _count=0; _i=INT32_C(1); _count=(/*RF2*/(((T7*)a1))->_count/*3p*/); while(!(((int32_t)(_i))>(_count))) { io_putc(r7item(((T7*)a1),_i),(stderr)); _i=((int32_t)(_i))+(INT32_C(1)); } }/*--*/ /*STD_ERROR*/void r43put_line(T0* a1){ r43put_string(a1); io_putc(((T3)'\n'),(stderr)); }/*--*/ /*agent launcher*/static void _agenT70f70l203c34(se_agenT70f70l203c34*u,T0* open_a1){ T0* closed_C=(u->closed_C); r70reconfigure_crop(((T70*)closed_C),open_a1); }/*--*/ /*agent creation*/T0*agenT70f70l203c34(T0* closed_C){ se_agenT70f70l203c34*u=(void*)new_agent(251); u->creation_mold_id=0; u->afp=_agenT70f70l203c34; u->gc_mark_agent_mold=gc_mark_agenT70f70l203c34; u->closed_C=closed_C; return((T0*)u); }/*--*/ void gc_mark_agenT70f70l203c34(se_agenT70f70l203c34*u){ gc_agent*gcu=(gc_agent*)u; if (gcu->header.flag==FSOH_UNMARKED){ gcu->header.flag=FSOH_MARKED; gc_mark(u->closed_C); } }/*--*/ /*WACOM_POINTER*/void r70move(T70* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; T6 tmp1; T6 tmp2; /*INTERNAL_C_LOCAL list]*/ T2 _x=0; T2 _y=0; T2 _presure=0; T5 _t3=0; T0* _message=(void*)0; _x=r68motion_axis_data(INT32_C(1)); _y=r68motion_axis_data(INT32_C(2)); r256remove_first((T256*)((/*RF2*/(C)->_x_history/*32p*/))); r256add_last((T256*)((/*RF2*/(C)->_x_history/*32p*/)),_x); r256remove_first((T256*)((/*RF2*/(C)->_y_history/*32p*/))); r256add_last((T256*)((/*RF2*/(C)->_y_history/*32p*/)),_y); r256remove_first((T256*)((/*RF2*/(C)->_time_history/*32p*/))); r256add_last((T256*)((/*RF2*/(C)->_time_history/*32p*/)),x_device_event_time); _t3=r70mean((/*RF2*/(C)->_time_history/*32p*/)); if(((T5)((_t3)))!=(((T5)((/*RF2*/(C)->_t2/*32p*/))))){ r70update_predicted_position(C,r70mean((/*RF2*/(C)->_x_history/*32p*/)),r70mean((/*RF2*/(C)->_y_history/*32p*/)),_t3); } _presure=r68motion_axis_data(INT32_C(3)); if((/*RF2*/(C)->_cropping/*32p*/)){ tmp0/*or else*/=((T6)(((int32_t)(_x))<((/*RF2*/(C)->_x_min_crop/*32p*/)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(((int32_t)(_y))<((/*RF2*/(C)->_y_min_crop/*32p*/)))); } tmp1/*or else*/=((T6)(tmp0/*or else*/)); if(tmp1/*or else*/){ } else{ tmp1/*or else*/=((T6)(((int32_t)(_x))>((/*RF2*/(C)->_x_max_crop/*32p*/)))); } tmp2/*or else*/=((T6)(tmp1/*or else*/)); if(tmp2/*or else*/){ } else{ tmp2/*or else*/=((T6)(((int32_t)(_y))>((/*RF2*/(C)->_y_max_crop/*32p*/)))); } if(tmp2/*or else*/){ /*SFN*/(C->_ignored_counter/*32p*/)=INT32_C(-1); } } /*auto-unlock tmp0*/tmp0/*and then*/=((T6)(((int32_t)((/*RF2*/(C)->_ignored_counter/*32p*/)))<((/*RF2*/(C)->_ignore_rate/*32p*/)))); if(tmp0/*and then*/){ tmp0/*and then*/=((T6)((((/*RF2*/(C)->_old_presure/*32p*/))==(INT8_C(0)))==((_presure)==(INT8_C(0))))); } if(tmp0/*and then*/){ /*SFN*/(C->_ignored_counter/*32p*/)=((int32_t)((/*RF2*/(C)->_ignored_counter/*32p*/)))+(INT32_C(1)); } else{ /*SFN*/(C->_ignored_counter/*32p*/)=INT32_C(0); _message=ms25_0bc70; r7copy(((T7*)_message),(/*RF2*/(C)->_pointer_message_header/*32p*/)); r70print_data_in(C,_message,_x,_y,_presure,r68motion_axis_data(INT32_C(4)),r68motion_axis_data(INT32_C(5)),r68motion_axis_data(INT32_C(6)),x_device_event_time,ms70_56246305); r71send_message((T71*)((/*RF2*/((T25*)((/*RF2*/(C)->_xinput_ivy/*32p*/)))->_ivy/*8p*/)),_message); } /*SFN*/(C->_old_presure/*32p*/)=_presure; }/*--*/ /*WACOM_POINTER*/void r70crop_identifier(T70* C,T0* a1){ T0* _msg=(void*)0; _msg=ms25_0bc70c11; (/*RF2*/(((T7*)_msg))->_count/*3p*/)=INT32_C(0); r7append(((T7*)_msg),ms70_220157120); r7append(((T7*)_msg),a1); r7append(((T7*)_msg),ms70_112207026); r71subscribe((T71*)((/*RF2*/((T25*)((/*RF2*/(C)->_xinput_ivy/*32p*/)))->_ivy/*8p*/)),_msg,agenT70f70l203c34((T0*)C)); }/*--*/ /*WACOM_POINTER*/void r70set_message_header(T70* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T2 _history_size=0; /*SFN*/(C->_pointer_message_header/*32p*/)=se_ms(7,s70_2179769); r7append((T7*)((/*RF2*/(C)->_pointer_message_header/*32p*/)),a1); /*SFN*/(C->_button_message_header/*32p*/)=se_ms(6,s70_397440); r7append((T7*)((/*RF2*/(C)->_button_message_header/*32p*/)),a1); _history_size=INT32_C(1); tmp0/*new*/=((T0*)(new256())); r256make(((T256*)tmp0/*new*/),INT32_C(0),_history_size); /*SFN*/(C->_x_history/*32p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new256())); r256make(((T256*)tmp0/*new*/),INT32_C(0),_history_size); /*SFN*/(C->_y_history/*32p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new256())); r256make(((T256*)tmp0/*new*/),INT32_C(0),_history_size); /*SFN*/(C->_time_history/*32p*/)=tmp0/*new*/; /*tmp0.unlock*/ }/*--*/ /*WACOM_POINTER*/T6 r70is_valid_crop(T0* a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T6 R=0; T0* _tmp=(void*)0; T0* _values=(void*)0; R=((T6)((r7occurrences(((T7*)a1),((T3)'\054')))==(INT8_C(3)))); if(R){ _tmp=r7twin(((T7*)a1)); r7replace_all(((T7*)_tmp),((T3)'\054'),((T3)'\040')); _values=r7split(((T7*)_tmp)); R=((T6)((r257count(((T257*)_values)))==(INT8_C(4)))); while(1){ tmp0/*or else*/=((T6)((R)==(0))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(r257is_empty(((T257*)_values)))); } if(tmp0/*or else*/){ break; } R=((T6)(r7is_integer((T7*)(r257last(((T257*)_values)))))); r257remove_last(((T257*)_values)); } } return R; }/*--*/ /*WACOM_POINTER*/void r70button(T70* C,T6 a1,T0* a2){ T2 _x=0; T2 _y=0; T2 _presure=0; T5 _t3=0; T0* _message=(void*)0; _x=r68motion_axis_data(INT32_C(1)); _y=r68motion_axis_data(INT32_C(2)); r256remove_first((T256*)((/*RF2*/(C)->_x_history/*32p*/))); r256add_last((T256*)((/*RF2*/(C)->_x_history/*32p*/)),_x); r256remove_first((T256*)((/*RF2*/(C)->_y_history/*32p*/))); r256add_last((T256*)((/*RF2*/(C)->_y_history/*32p*/)),_y); r256remove_first((T256*)((/*RF2*/(C)->_time_history/*32p*/))); r256add_last((T256*)((/*RF2*/(C)->_time_history/*32p*/)),x_device_event_time); _t3=r70mean((/*RF2*/(C)->_time_history/*32p*/)); if(((T5)((_t3)))!=(((T5)((/*RF2*/(C)->_t2/*32p*/))))){ r70update_predicted_position(C,r70mean((/*RF2*/(C)->_x_history/*32p*/)),r70mean((/*RF2*/(C)->_y_history/*32p*/)),_t3); } _message=ms25_0bc70c15; r7copy(((T7*)_message),(/*RF2*/(C)->_button_message_header/*32p*/)); r7append(((T7*)_message),ms25_4487261bc70); r2append_in(x_device_button_event_number,_message); r7append(((T7*)_message),ms70_4738061); if(a1){ r7append(((T7*)_message),ms70_15980); } else{ r7append(((T7*)_message),ms70_697); } _presure=r68motion_axis_data(INT32_C(3)); r70print_data_in(C,_message,_x,_y,_presure,r68motion_axis_data(INT32_C(4)),r68motion_axis_data(INT32_C(5)),r68motion_axis_data(INT32_C(6)),x_device_event_time,ms70_56246305bc70); r71send_message((T71*)((/*RF2*/((T25*)((/*RF2*/(C)->_xinput_ivy/*32p*/)))->_ivy/*8p*/)),_message); }/*--*/ /*WACOM_POINTER*/void r70proximity(T70* C,T6 a1,T0* a2){ T2 _x=0; T2 _y=0; T5 _t3=0; T0* _message=(void*)0; T0* _proximity_status=(void*)0; _x=r68proximity_axis_data(INT32_C(1)); _y=r68proximity_axis_data(INT32_C(2)); r256remove_first((T256*)((/*RF2*/(C)->_x_history/*32p*/))); r256add_last((T256*)((/*RF2*/(C)->_x_history/*32p*/)),_x); r256remove_first((T256*)((/*RF2*/(C)->_y_history/*32p*/))); r256add_last((T256*)((/*RF2*/(C)->_y_history/*32p*/)),_y); r256remove_first((T256*)((/*RF2*/(C)->_time_history/*32p*/))); r256add_last((T256*)((/*RF2*/(C)->_time_history/*32p*/)),x_device_event_time); _t3=r70mean((/*RF2*/(C)->_time_history/*32p*/)); if(((T5)((_t3)))!=(((T5)((/*RF2*/(C)->_t2/*32p*/))))){ r70update_predicted_position(C,r70mean((/*RF2*/(C)->_x_history/*32p*/)),r70mean((/*RF2*/(C)->_y_history/*32p*/)),_t3); } if(a1){ _proximity_status=ms70_475; } else{ _proximity_status=ms70_2676; } _message=ms25_0bc70c15l379; r7copy(((T7*)_message),(/*RF2*/(C)->_pointer_message_header/*32p*/)); r70print_data_in(C,_message,_x,_y,r68proximity_axis_data(INT32_C(3)),r68proximity_axis_data(INT32_C(4)),r68proximity_axis_data(INT32_C(5)),r68proximity_axis_data(INT32_C(6)),x_device_event_time,_proximity_status); r71send_message((T71*)((/*RF2*/((T25*)((/*RF2*/(C)->_xinput_ivy/*32p*/)))->_ivy/*8p*/)),_message); }/*--*/ /*WACOM_POINTER*/T2 r70device_to_screen_y(T70* C,T2 a1){ T2 R=0; R=((int32_t)(((((T5)(((int32_t)(a1))-(INT32_C(300))))/(INT32_C(64700)))*(/*IC*/(T5)(INT16_C(1200))))+(/*IC*/(T5)((/*RF2*/(C)->_y_offset/*32p*/))))); return R; }/*--*/ /*WACOM_POINTER*/T2 r70device_to_screen_x(T70* C,T2 a1){ T2 R=0; R=((int32_t)(((((T5)(((int32_t)(a1))-(INT32_C(150))))/(INT32_C(86650)))*(/*IC*/(T5)(INT16_C(1600))))+(/*IC*/(T5)((/*RF2*/(C)->_x_offset/*32p*/))))); return R; }/*--*/ /*WACOM_POINTER*/T0* r70type_to_name(T2 a1){ T0* R=(void*)0; /*[inspect*/ switch(a1){ case 2066: R=ms70_10739024; break; case 2049: R=ms70_10739017; break; case 2082: R=ms70_10739030; break; case 2083: R=ms70_1940108584; break; case 2067: R=ms70_1619665677; break; case 2181: R=ms70_1961093439; break; case 2098: R=ms70_1874520032; break; case 3346: R=ms70_104371267; break; case 2323: R=ms70_104371129; break; case 2090: R=ms70_1257860908; break; case 2091: R=ms70_2057747851; break; case 2075: R=ms70_1699147265; break; case 2331: R=ms70_1501987274; break; default:; R=ms25_0bc70c15l97; (/*RF2*/(((T7*)R))->_count/*3p*/)=INT32_C(0); r2append_in(a1,R); } /*inspect]*/ return R; }/*--*/ T0*oBC13io=(void*)0; /*WACOM_POINTER*/T0* r70twin(T70* C){ T0* R=(void*)0; R=((void*)new70()); *((T70*)R)=*C; return R; }/*--*/ /*WACOM_POINTER*/T5 r70mean(T0* a1){ T5 R=0; T11 _sum=0; T2 _i=0; _i=(/*RF2*/(((T256*)a1))->_lower/*5p*/); while(!(((int32_t)(_i))>((/*RF2*/(((T256*)a1))->_upper/*5p*/)))) { _sum=((int64_t)(_sum))+(/*IC*/(T11)(r256item(((T256*)a1),_i))); _i=((int32_t)(_i))+(INT32_C(1)); } R=((T5)(_sum))/(/*IC*/(T11)(r256count(((T256*)a1)))); return R; }/*--*/ /*WACOM_POINTER*/void r70reconfigure_crop(T70* C,T0* a1){ if(r70is_valid_crop(((/*RF2*/(((T244*)a1))->_storage/*3p*/))[INT32_C(0)])){ r70set_crop(C,((/*RF2*/(((T244*)a1))->_storage/*3p*/))[INT32_C(0)]); } else{ r46put_string(ms70_2097616536); r46put_line(((/*RF2*/(((T244*)a1))->_storage/*3p*/))[INT32_C(0)]); } }/*--*/ /*WACOM_POINTER*/void r70set_crop(T70* C,T0* a1){ T0* _values=(void*)0; r7replace_all(((T7*)a1),((T3)'\054'),((T3)'\040')); _values=r7split(((T7*)a1)); /*SFN*/(C->_x_min_crop/*32p*/)=r7to_integer((T7*)(r257item(((T257*)_values),INT32_C(1)))); /*SFN*/(C->_y_min_crop/*32p*/)=r7to_integer((T7*)(r257item(((T257*)_values),INT32_C(2)))); /*SFN*/(C->_x_max_crop/*32p*/)=r7to_integer((T7*)(r257item(((T257*)_values),INT32_C(3)))); /*SFN*/(C->_y_max_crop/*32p*/)=r7to_integer((T7*)(r257item(((T257*)_values),INT32_C(4)))); /*SFN*/(C->_cropping/*32p*/)=((T6)(1)); /*SFN*/(C->_crop_width/*32p*/)=((int32_t)((/*RF2*/(C)->_x_max_crop/*32p*/)))-((/*RF2*/(C)->_x_min_crop/*32p*/)); /*SFN*/(C->_crop_height/*32p*/)=((int32_t)((/*RF2*/(C)->_y_max_crop/*32p*/)))-((/*RF2*/(C)->_y_min_crop/*32p*/)); }/*--*/ /*WACOM_POINTER*/void r70update_predicted_position(T70* C,T5 a1,T5 a2,T5 a3){ T5 _dt=0; T5 _s3x=0; T5 _s3y=0; T5 _s3=0; T5 _s3xn=0; T5 _s3yn=0; T5 _a3x=0; T5 _a3y=0; T5 _a3xm=0; T5 _a3ym=0; T5 _a4x=0; T5 _a4y=0; _dt=(a3)-((/*RF2*/(C)->_t2/*32p*/)); _s3x=((a1)-((/*RF2*/(C)->_x2/*32p*/)))/(_dt); _s3y=((a2)-((/*RF2*/(C)->_y2/*32p*/)))/(_dt); _s3=sqrt(((_s3x)*(_s3x))+((_s3y)*(_s3y))); if(((T5)((_s3)))!=(((T5)(INT8_C(0))))){ _s3xn=(_s3x)/(_s3); _s3yn=(_s3y)/(_s3); } _dt=((a3)-((/*RF2*/(C)->_t1/*32p*/)))/(/*IC*/(T5)(INT8_C(2))); _a3x=((_s3x)-((/*RF2*/(C)->_s2x/*32p*/)))/(_dt); _a3y=((_s3y)-((/*RF2*/(C)->_s2y/*32p*/)))/(_dt); _a3xm=((_a3x)*((/*RF2*/(C)->_s2xn/*32p*/)))+((_a3y)*((/*RF2*/(C)->_s2yn/*32p*/))); _a3ym=((-(_a3x))*((/*RF2*/(C)->_s2yn/*32p*/)))+((_a3y)*((/*RF2*/(C)->_s2xn/*32p*/))); _a4x=((_s3xn)*(_a3xm))-((_s3yn)*(_a3ym)); _a4y=((_s3yn)*(_a3xm))+((_s3xn)*(_a3ym)); _dt=((((/*RF2*/(C)->_prediction_time/*32p*/))+((/*RF2*/(C)->_t2/*32p*/)))-((/*RF2*/(C)->_t1/*32p*/)))/((((a3)+((/*RF2*/(C)->_t1/*32p*/)))-((/*RF2*/(C)->_t2/*32p*/)))-((/*RF2*/(C)->_t0/*32p*/))); _a4x=(((_a4x)+(_a3x))+(((_a3x)-((/*RF2*/(C)->_a2x/*32p*/)))*(_dt)))/(/*IC*/(T5)(INT8_C(2))); _a4y=(((_a4y)+(_a3y))+(((_a3y)-((/*RF2*/(C)->_a2y/*32p*/)))*(_dt)))/(/*IC*/(T5)(INT8_C(2))); _dt=(((a3)-((/*RF2*/(C)->_t2/*32p*/)))+((/*RF2*/(C)->_prediction_time/*32p*/)))/(/*IC*/(T5)(INT8_C(2))); /*SFN*/(C->_predicted_x/*32p*/)=((int32_t)((a1)+(((/*RF2*/(C)->_prediction_time/*32p*/))*((_s3x)+((_a4x)*(_dt)))))); /*SFN*/(C->_predicted_y/*32p*/)=((int32_t)((a2)+(((/*RF2*/(C)->_prediction_time/*32p*/))*((_s3y)+((_a4y)*(_dt)))))); /*SFN*/(C->_x2/*32p*/)=a1; /*SFN*/(C->_y2/*32p*/)=a2; /*SFN*/(C->_s2x/*32p*/)=_s3x; /*SFN*/(C->_s2y/*32p*/)=_s3y; /*SFN*/(C->_s2xn/*32p*/)=_s3xn; /*SFN*/(C->_s2yn/*32p*/)=_s3yn; /*SFN*/(C->_a2x/*32p*/)=_a3x; /*SFN*/(C->_a2y/*32p*/)=_a3y; /*SFN*/(C->_t0/*32p*/)=(/*RF2*/(C)->_t1/*32p*/); /*SFN*/(C->_t1/*32p*/)=(/*RF2*/(C)->_t2/*32p*/); /*SFN*/(C->_t2/*32p*/)=a3; }/*--*/ /*WACOM_POINTER*/void r70make(T70* C,T0* a1){ /*SFN*/(C->_xinput_ivy/*32p*/)=a1; /*SFN*/(C->_prediction_time/*32p*/)=/*IC*/(T5)(INT8_C(25)); }/*--*/ /*WACOM_POINTER*/void r70print_data_in(T70* C,T0* a1,T2 a2,T2 a3,T2 a4,T2 a5,T2 a6,T2 a7,T2 a8,T0* a9){ r7append(((T7*)a1),ms70_1461); r2append_in(r70device_to_screen_x(C,a2),a1); r7append(((T7*)a1),ms70_1466); r2append_in(r70device_to_screen_y(C,a3),a1); r7append(((T7*)a1),ms70_23436791); r2append_in(a4,a1); r7append(((T7*)a1),ms70_4725661); r10append_in(((int16_t)(a5)),a1); r7append(((T7*)a1),ms70_4725666); r10append_in(((int16_t)(a6)),a1); r7append(((T7*)a1),ms70_952626); r10append_in(((int16_t)(a7)),a1); r7append(((T7*)a1),ms70_1756148648); r2append_in(r70device_to_screen_x(C,(/*RF2*/(C)->_predicted_x/*32p*/)),a1); r7append(((T7*)a1),ms70_1756148653); r2append_in(r70device_to_screen_y(C,(/*RF2*/(C)->_predicted_y/*32p*/)),a1); r7append(((T7*)a1),ms70_190991); r7append(((T7*)a1),r70type_to_name(/*IC*/(T2)(r2high_16(a5)))); r7append(((T7*)a1),ms70_2112369621); r2append_in((((r10to_integer_32(r2high_16(a6)))<<(INT8_C(16)))|(/*0x0000FFFF*/INT32_C(65535)&/*IC*/(T2)(r2high_16(a7)))),a1); r7append(((T7*)a1),ms70_188916); r2append_in(a8,a1); r7append(((T7*)a1),ms70_22702411); if(((/*RF2*/(C)->_cropping/*32p*/))==(0)){ r5append_in_format(((T5)(a2))/(INT32_C(86400)),a1,INT32_C(6)); } else{ r5append_in_format(((T5)(((int32_t)(a2))-((/*RF2*/(C)->_x_min_crop/*32p*/))))/((/*RF2*/(C)->_crop_width/*32p*/)),a1,INT32_C(6)); } r7append(((T7*)a1),ms70_22702416); if(((/*RF2*/(C)->_cropping/*32p*/))==(0)){ r5append_in_format(((T5)(a3))/(INT32_C(65000)),a1,INT32_C(6)); } else{ r5append_in_format(((T5)(((int32_t)(a3))-((/*RF2*/(C)->_y_min_crop/*32p*/))))/((/*RF2*/(C)->_crop_height/*32p*/)),a1,INT32_C(6)); } r7append(((T7*)a1),ms70_586741066); r7append(((T7*)a1),a9); }/*--*/ /*IVY*/void r71start(T71* C,T0* a1){ if(((/*RF2*/(((T7*)a1))->_count/*3p*/))==(INT8_C(0))){ IvyStart(NULL/*_POINTER*/); } else{ IvyStart(r7to_external(((T7*)a1))); } /*SFN*/(C->_started/*i11p*/)=((T6)(1)); }/*--*/ /*IVY*/void r71make(T71* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ /*SFN*/(C->_application_name_/*i11p*/)=r7twin(((T7*)a1)); /*SFN*/(C->_ready_message_/*i11p*/)=r7twin(((T7*)a1)); r7append((T7*)((/*RF2*/(C)->_ready_message_/*i11p*/)),se_ms(6,s71_202554)); ivy_init(r7to_external((T7*)((/*RF2*/(C)->_application_name_/*i11p*/))),r7to_external((T7*)((/*RF2*/(C)->_ready_message_/*i11p*/))),(T0*)C,/*$*/((void*)W71channel_up),/*$*/((void*)W71channel_down),/*$*/((void*)W71callback_runner)); tmp0/*new*/=((T0*)(new253())); r253make(((T253*)tmp0/*new*/)); /*SFN*/(C->_pattern_list/*i11p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new250())); r250make(((T250*)tmp0/*new*/)); /*SFN*/(C->_callback_list/*i11p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new249())); r249make(((T249*)tmp0/*new*/),INT32_C(0)); /*SFN*/(C->_ivy_clients/*i11p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new249())); r249make(((T249*)tmp0/*new*/),INT32_C(0)); /*SFN*/(C->_tmp_client_list/*i11p*/)=tmp0/*new*/; /*tmp0.unlock*/ }/*--*/ /*IVY*/void r71prepare(T71* C,T0* a1){ T2 _i=0; _i=INT32_C(0); while(!(((int32_t)(_i))>((/*RF2*/((T249*)((/*RF2*/(C)->_ivy_clients/*i11p*/)))->_upper/*3p*/)))) { r154expect(((T154*)a1),r153event_can_read((T153*)(((/*RF2*/((T249*)((/*RF2*/(C)->_ivy_clients/*i11p*/)))->_storage/*3p*/))[_i]))); r154expect(((T154*)a1),r153event_exception((T153*)(((/*RF2*/((T249*)((/*RF2*/(C)->_ivy_clients/*i11p*/)))->_storage/*3p*/))[_i]))); _i=((int32_t)(_i))+(INT32_C(1)); } }/*--*/ /*IVY*/T6 r71is_ready(T71* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; T6 tmp1; /*INTERNAL_C_LOCAL list]*/ T6 R=0; T2 _i=0; _i=INT32_C(0); while(1){ tmp0/*or else*/=((T6)(((int32_t)(_i))>((/*RF2*/((T249*)((/*RF2*/(C)->_ivy_clients/*i11p*/)))->_upper/*3p*/)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)(R)); } if(tmp0/*or else*/){ break; } tmp1/*or else*/=((T6)(r154event_occurred(((T154*)a1),r153event_exception((T153*)(((/*RF2*/((T249*)((/*RF2*/(C)->_ivy_clients/*i11p*/)))->_storage/*3p*/))[_i]))))); if(tmp1/*or else*/){ } else{ tmp1/*or else*/=((T6)(r154event_occurred(((T154*)a1),r153event_can_read((T153*)(((/*RF2*/((T249*)((/*RF2*/(C)->_ivy_clients/*i11p*/)))->_storage/*3p*/))[_i]))))); } R=((T6)(tmp1/*or else*/)); _i=((int32_t)(_i))+(INT32_C(1)); } /*SFN*/(C->_events_set/*i11p*/)=a1; return R; }/*--*/ /*IVY*/void r71continue(T71* C){ T2 _i=0; T0* _client=(void*)0; r249copy((T249*)((/*RF2*/(C)->_tmp_client_list/*i11p*/)),(/*RF2*/(C)->_ivy_clients/*i11p*/)); _i=INT32_C(0); while(!(((int32_t)(_i))>((/*RF2*/((T249*)((/*RF2*/(C)->_tmp_client_list/*i11p*/)))->_upper/*3p*/)))) { _client=((/*RF2*/((T249*)((/*RF2*/(C)->_tmp_client_list/*i11p*/)))->_storage/*3p*/))[_i]; if(r154event_occurred((T154*)((/*RF2*/(C)->_events_set/*i11p*/)),r153event_exception(((T153*)_client)))){ r153disconnect(((T153*)_client)); } else{ if(r154event_occurred((T154*)((/*RF2*/(C)->_events_set/*i11p*/)),r153event_can_read(((T153*)_client)))){ r153process_incomming_data(((T153*)_client)); } _i=((int32_t)(_i))+(INT32_C(1)); } } }/*--*/ /*IVY*/void r71subscribe(T71* C,T0* a1,T0* a2){ T0* _pattern_copy=(void*)0; T8 _bind_id=(void*)0; _pattern_copy=r7twin(((T7*)a1)); _bind_id=bind_message(r7to_external(((T7*)_pattern_copy)),a2); r253add((T253*)((/*RF2*/(C)->_pattern_list/*i11p*/)),_bind_id,_pattern_copy); r250add((T250*)((/*RF2*/(C)->_callback_list/*i11p*/)),a2,_pattern_copy); }/*--*/ /*IVY*/void r71channel_down(T71* C,T0* a1){ r153disconnect(((T153*)a1)); r249remove((T249*)((/*RF2*/(C)->_ivy_clients/*i11p*/)),r249fast_index_of((T249*)((/*RF2*/(C)->_ivy_clients/*i11p*/)),a1,INT32_C(0))); }/*--*/ /*IVY*/void r71callback_runner(T0* a1,T2 a2,T254 a3){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T2 _i=0; T0* _match_list=(void*)0; tmp0/*new*/=((T0*)(new244())); r244with_capacity(((T244*)tmp0/*new*/),a2); _match_list=tmp0/*new*/; /*tmp0.unlock*/ while(!(((int32_t)(_i))>=(a2))) { r244add_last(((T244*)_match_list),((T0*)create7from_external((a3)[_i]))); _i=((int32_t)(_i))+(INT32_C(1)); } agent_launcher_FAST_ARRAY__STRING__(a1,_match_list); }/*--*/ /*IVY*/T0* r71channel_up(T71* C,T2 a1,T8 a2,T8 a3,T8 a4,T8 a5){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; tmp0/*new*/=((T0*)(new153())); r153make(((T153*)tmp0/*new*/),a1,a2,a3,a4,a5); R=tmp0/*new*/; /*tmp0.unlock*/ r249add_last((T249*)((/*RF2*/(C)->_ivy_clients/*i11p*/)),R); return R; }/*--*/ /*IVY*/void r71send_message(T71* C,T0* a1){ /*SFN*/(C->_destination_count/*i11p*/)=send_message(r7to_external(((T7*)a1))); }/*--*/ void* W71channel_up(void* C,T2 a1,T8 a2,T8 a3,T8 a4,T8 a5){ return r71channel_up(C,a1,a2,a3,a4,a5); }/*--*/ void W71channel_down(void* C,void* a1){ r71channel_down(C,a1); }/*--*/ void W71callback_runner(void* C,void* a1,T2 a2,T254 a3){ r71callback_runner(a1,a2,a3); }/*--*/ /*VISION*/void r65start(T65* C){ r131continue((T131*)((/*RF2*/(C)->_event_catcher/*6p*/))); r133run(((T133*)/*no_dispatch.e*/(/*RF2*/(C)->_loop_stack/*6p*/))); }/*--*/ /*VISION*/void r65register(T65* C,T0* a1){ r276add(((T276*)/*no_dispatch.e*/(/*RF2*/(C)->_widget/*6p*/)),a1,(/*RF2*/(((T73*)/*no_dispatch.e*/a1))->_widget/*9p*/)); }/*--*/ /*VISION*/void r65graphic_init(T65* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T2 _g_c=0; T0* _ls=(void*)0; _g_c=basic_vision_init; if((_g_c)!=(INT8_C(0))){ tmp0/*new*/=((T0*)(new134())); r134set_descriptor(((T134*)tmp0/*new*/),_g_c); /*SFN*/(C->_graphic_connection/*6p*/)=tmp0/*new*/; /*tmp0.unlock*/ } else{ r46put_string(se_ms(47,s65_1686724329)); r65not_yet_implemented(C); } /*SFN*/(C->_display_width/*6p*/)=basic_vision_display_width; /*SFN*/(C->_display_height/*6p*/)=basic_vision_display_height; /*reusing tmp0*/tmp0/*new*/=((T0*)(new133())); r133make(((T133*)tmp0/*new*/)); _ls=tmp0/*new*/; /*tmp0.unlock*/ (/*RF2*/(((T133*)_ls))->_vision/*4p*/)=((T0*)(C)); /*SFN*/(C->_loop_stack/*6p*/)=_ls; /*reusing tmp0*/tmp0/*new*/=((T0*)(new131())); r131make(((T131*)tmp0/*new*/),(/*RF2*/(C)->_graphic_connection/*6p*/)); /*SFN*/(C->_event_catcher/*6p*/)=tmp0/*new*/; /*tmp0.unlock*/ /*SFN*/(C->_widget/*6p*/)=(/*RF2*/((T131*)((/*RF2*/(C)->_event_catcher/*6p*/)))->_widget/*i11p*/); r155add_job((T155*)(r133current_loop(((T133*)/*no_dispatch.e*/(/*RF2*/(C)->_loop_stack/*6p*/)))),(/*RF2*/(C)->_event_catcher/*6p*/)); }/*--*/ T0*oBC65root_window=(void*)0; int fBC65root_window=0; /*VISION*/T0* r65root_window(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ if(fBC65root_window==0){fBC65root_window=1;{ tmp0/*new*/=((T0*)(new73())); r73default_create(((T73*)tmp0/*new*/)); oBC65root_window=tmp0/*new*/; /*tmp0.unlock*/ }} return oBC65root_window; }/*--*/ T0*oBC13std_error=(void*)0; /*VISION*/void r65crash(T65* C){ se_print_run_time_stack(); se_die(INT32_C(1)); }/*--*/ /*VISION*/void r65not_yet_implemented(T65* C){ r43put_string(se_ms(611,s13_1432888418)); r43put_string((T0*)(t[65])); r43put_string(se_ms(3,s13_1210)); r65crash(C); }/*--*/ /*agent launcher*/static void _agenT25f25l227c40(se_agenT25f25l227c40*u,T0* open_a2){ T0* closed_C=(u->closed_C); r70proximity(((T70*)closed_C),(T6)(0),open_a2); }/*--*/ /*agent creation*/T0*agenT25f25l227c40(T0* closed_C){ se_agenT25f25l227c40*u=(void*)new_agent(245); u->creation_mold_id=1; u->afp=_agenT25f25l227c40; u->gc_mark_agent_mold=gc_mark_agenT25f25l227c40; u->closed_C=closed_C; return((T0*)u); }/*--*/ void gc_mark_agenT25f25l227c40(se_agenT25f25l227c40*u){ gc_agent*gcu=(gc_agent*)u; if (gcu->header.flag==FSOH_UNMARKED){ gcu->header.flag=FSOH_MARKED; gc_mark(u->closed_C); } }/*--*/ /*agent launcher*/static void _agenT25f25l226c39(se_agenT25f25l226c39*u,T0* open_a2){ T0* closed_C=(u->closed_C); r70proximity(((T70*)closed_C),(T6)(1),open_a2); }/*--*/ /*agent creation*/T0*agenT25f25l226c39(T0* closed_C){ se_agenT25f25l226c39*u=(void*)new_agent(245); u->creation_mold_id=2; u->afp=_agenT25f25l226c39; u->gc_mark_agent_mold=gc_mark_agenT25f25l226c39; u->closed_C=closed_C; return((T0*)u); }/*--*/ void gc_mark_agenT25f25l226c39(se_agenT25f25l226c39*u){ gc_agent*gcu=(gc_agent*)u; if (gcu->header.flag==FSOH_UNMARKED){ gcu->header.flag=FSOH_MARKED; gc_mark(u->closed_C); } }/*--*/ /*agent launcher*/static void _agenT25f25l225c42(se_agenT25f25l225c42*u,T0* open_a2){ T0* closed_C=(u->closed_C); r70button(((T70*)closed_C),(T6)(0),open_a2); }/*--*/ /*agent creation*/T0*agenT25f25l225c42(T0* closed_C){ se_agenT25f25l225c42*u=(void*)new_agent(245); u->creation_mold_id=3; u->afp=_agenT25f25l225c42; u->gc_mark_agent_mold=gc_mark_agenT25f25l225c42; u->closed_C=closed_C; return((T0*)u); }/*--*/ void gc_mark_agenT25f25l225c42(se_agenT25f25l225c42*u){ gc_agent*gcu=(gc_agent*)u; if (gcu->header.flag==FSOH_UNMARKED){ gcu->header.flag=FSOH_MARKED; gc_mark(u->closed_C); } }/*--*/ /*agent launcher*/static void _agenT25f25l224c41(se_agenT25f25l224c41*u,T0* open_a2){ T0* closed_C=(u->closed_C); r70button(((T70*)closed_C),(T6)(1),open_a2); }/*--*/ /*agent creation*/T0*agenT25f25l224c41(T0* closed_C){ se_agenT25f25l224c41*u=(void*)new_agent(245); u->creation_mold_id=4; u->afp=_agenT25f25l224c41; u->gc_mark_agent_mold=gc_mark_agenT25f25l224c41; u->closed_C=closed_C; return((T0*)u); }/*--*/ void gc_mark_agenT25f25l224c41(se_agenT25f25l224c41*u){ gc_agent*gcu=(gc_agent*)u; if (gcu->header.flag==FSOH_UNMARKED){ gcu->header.flag=FSOH_MARKED; gc_mark(u->closed_C); } }/*--*/ /*agent launcher*/static void _agenT25f25l223c32(se_agenT25f25l223c32*u,T0* open_a1){ T0* closed_C=(u->closed_C); r70move(((T70*)closed_C),open_a1); }/*--*/ /*agent creation*/T0*agenT25f25l223c32(T0* closed_C){ se_agenT25f25l223c32*u=(void*)new_agent(245); u->creation_mold_id=5; u->afp=_agenT25f25l223c32; u->gc_mark_agent_mold=gc_mark_agenT25f25l223c32; u->closed_C=closed_C; return((T0*)u); }/*--*/ void gc_mark_agenT25f25l223c32(se_agenT25f25l223c32*u){ gc_agent*gcu=(gc_agent*)u; if (gcu->header.flag==FSOH_UNMARKED){ gcu->header.flag=FSOH_MARKED; gc_mark(u->closed_C); } }/*--*/ /*agent launcher*/static void _agenT25f25l205c38(se_agenT25f25l205c38*u,T0* open_a2){ T0* closed_C=(u->closed_C); T0* closed_a1=(u->closed_a1); r25pad_button_released(((T25*)closed_C),closed_a1,open_a2); }/*--*/ /*agent creation*/T0*agenT25f25l205c38(T0* closed_C,T0* closed_a1){ se_agenT25f25l205c38*u=(void*)new_agent(245); u->creation_mold_id=6; u->afp=_agenT25f25l205c38; u->gc_mark_agent_mold=gc_mark_agenT25f25l205c38; u->closed_C=closed_C; u->closed_a1=closed_a1; return((T0*)u); }/*--*/ void gc_mark_agenT25f25l205c38(se_agenT25f25l205c38*u){ gc_agent*gcu=(gc_agent*)u; if (gcu->header.flag==FSOH_UNMARKED){ gcu->header.flag=FSOH_MARKED; gc_mark(u->closed_C); gc_mark(u->closed_a1); } }/*--*/ /*agent launcher*/static void _agenT25f25l204c37(se_agenT25f25l204c37*u,T0* open_a2){ T0* closed_C=(u->closed_C); T0* closed_a1=(u->closed_a1); r25pad_button_pressed(((T25*)closed_C),closed_a1,open_a2); }/*--*/ /*agent creation*/T0*agenT25f25l204c37(T0* closed_C,T0* closed_a1){ se_agenT25f25l204c37*u=(void*)new_agent(245); u->creation_mold_id=7; u->afp=_agenT25f25l204c37; u->gc_mark_agent_mold=gc_mark_agenT25f25l204c37; u->closed_C=closed_C; u->closed_a1=closed_a1; return((T0*)u); }/*--*/ void gc_mark_agenT25f25l204c37(se_agenT25f25l204c37*u){ gc_agent*gcu=(gc_agent*)u; if (gcu->header.flag==FSOH_UNMARKED){ gcu->header.flag=FSOH_MARKED; gc_mark(u->closed_C); gc_mark(u->closed_a1); } }/*--*/ /*agent launcher*/static void _agenT25f25l199c36(se_agenT25f25l199c36*u,T0* open_a2){ T0* closed_C=(u->closed_C); T0* closed_a1=(u->closed_a1); r25left_slider_out(((T25*)closed_C),closed_a1,open_a2); }/*--*/ /*agent creation*/T0*agenT25f25l199c36(T0* closed_C,T0* closed_a1){ se_agenT25f25l199c36*u=(void*)new_agent(245); u->creation_mold_id=8; u->afp=_agenT25f25l199c36; u->gc_mark_agent_mold=gc_mark_agenT25f25l199c36; u->closed_C=closed_C; u->closed_a1=closed_a1; return((T0*)u); }/*--*/ void gc_mark_agenT25f25l199c36(se_agenT25f25l199c36*u){ gc_agent*gcu=(gc_agent*)u; if (gcu->header.flag==FSOH_UNMARKED){ gcu->header.flag=FSOH_MARKED; gc_mark(u->closed_C); gc_mark(u->closed_a1); } }/*--*/ /*agent launcher*/static void _agenT25f25l198c28(se_agenT25f25l198c28*u,T0* open_a2){ T0* closed_C=(u->closed_C); T0* closed_a1=(u->closed_a1); r25slider_event(((T25*)closed_C),closed_a1,open_a2); }/*--*/ /*agent creation*/T0*agenT25f25l198c28(T0* closed_C,T0* closed_a1){ se_agenT25f25l198c28*u=(void*)new_agent(245); u->creation_mold_id=9; u->afp=_agenT25f25l198c28; u->gc_mark_agent_mold=gc_mark_agenT25f25l198c28; u->closed_C=closed_C; u->closed_a1=closed_a1; return((T0*)u); }/*--*/ void gc_mark_agenT25f25l198c28(se_agenT25f25l198c28*u){ gc_agent*gcu=(gc_agent*)u; if (gcu->header.flag==FSOH_UNMARKED){ gcu->header.flag=FSOH_MARKED; gc_mark(u->closed_C); gc_mark(u->closed_a1); } }/*--*/ /*XINPUT_IVY*/T0* r25std_output(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ if(fBC13std_output==0){fBC13std_output=1;{ tmp0/*new*/=((T0*)(new53())); r53make(((T53*)tmp0/*new*/)); oBC13std_output=tmp0/*new*/; /*tmp0.unlock*/ }} return oBC13std_output; }/*--*/ /*XINPUT_IVY*/T0* r25vision(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ if(fBC26vision==0){fBC26vision=1;{ tmp0/*new*/=((T0*)(new65())); r65graphic_init(((T65*)tmp0/*new*/)); oBC26vision=tmp0/*new*/; /*tmp0.unlock*/ }} return oBC26vision; }/*--*/ /*XINPUT_IVY*/T6 r25decode_options(T25* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; T3 tmp1; T2 tmp2; T3 tmp3; T3 tmp4; /*INTERNAL_C_LOCAL list]*/ T6 R=0; T2 _i=0; T0* _option=(void*)0; T0* _value=(void*)0; T2 _equal_index=0; T6 _error=0; T0* _tmp_pointer=(void*)0; _i=INT32_C(1); _option=se_ms(0,s25_0); _value=se_ms(0,s25_0); tmp0/*new*/=((T0*)(new70())); r70make(((T70*)tmp0/*new*/),(T0*)C); _tmp_pointer=tmp0/*new*/; /*tmp0.unlock*/ while(!(r6_ix_or((T6)(((int32_t)(_i))>(r25argument_count())),(T6)(_error)))) { r7copy(((T7*)_option),((/*RF2*/((T244*)(r25command_arguments()))->_storage/*3p*/))[_i]); _equal_index=r7first_index_of(((T7*)_option),((T3)'\075')); if((_equal_index)==(INT8_C(0))){ (/*RF2*/(((T7*)_value))->_count/*3p*/)=INT32_C(0); } else{ r7copy(((T7*)_value),_option); r7remove_head(((T7*)_value),_equal_index); r7remove_tail(((T7*)_option),((int32_t)(((int32_t)((/*RF2*/(((T7*)_option))->_count/*3p*/)))-(_equal_index)))+(INT32_C(1))); } if((r7item(((T7*)_option),INT8_C(1)))==(((T3)'\055'))){ tmp1/*inspectExpression*/=r7item(((T7*)_option),INT8_C(2)); /*[inspect*/ switch(tmp1/*inspectExpression*/){ case 104: if((r7item(((T7*)_option),INT8_C(3)))==(((T3)'e'))){ if((r7item(((T7*)_option),INT8_C(4)))==(((T3)'l'))){ if((r7item(((T7*)_option),INT8_C(5)))==(((T3)'p'))){ if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(5))){ tmp2/*state*/=INT8_C(1); } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } break; case 108: if((r7item(((T7*)_option),INT8_C(3)))==(((T3)'i'))){ if((r7item(((T7*)_option),INT8_C(4)))==(((T3)'s'))){ if((r7item(((T7*)_option),INT8_C(5)))==(((T3)'t'))){ if((r7item(((T7*)_option),INT8_C(6)))==(((T3)'\137'))){ if((r7item(((T7*)_option),INT8_C(7)))==(((T3)'d'))){ if((r7item(((T7*)_option),INT8_C(8)))==(((T3)'e'))){ if((r7item(((T7*)_option),INT8_C(9)))==(((T3)'v'))){ if((r7item(((T7*)_option),INT8_C(10)))==(((T3)'i'))){ if((r7item(((T7*)_option),INT8_C(11)))==(((T3)'c'))){ if((r7item(((T7*)_option),INT8_C(12)))==(((T3)'e'))){ if((r7item(((T7*)_option),INT8_C(13)))==(((T3)'s'))){ if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(13))){ tmp2/*state*/=INT8_C(2); } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } break; case 112: tmp3/*inspectExpression*/=r7item(((T7*)_option),INT8_C(3)); /*[inspect*/ switch(tmp3/*inspectExpression*/){ case 97: if((r7item(((T7*)_option),INT8_C(4)))==(((T3)'d'))){ if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(4))){ tmp2/*state*/=INT8_C(3); } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } break; case 114: if((r7item(((T7*)_option),INT8_C(4)))==(((T3)'e'))){ if((r7item(((T7*)_option),INT8_C(5)))==(((T3)'d'))){ if((r7item(((T7*)_option),INT8_C(6)))==(((T3)'i'))){ if((r7item(((T7*)_option),INT8_C(7)))==(((T3)'c'))){ if((r7item(((T7*)_option),INT8_C(8)))==(((T3)'t'))){ if((r7item(((T7*)_option),INT8_C(9)))==(((T3)'i'))){ if((r7item(((T7*)_option),INT8_C(10)))==(((T3)'o'))){ if((r7item(((T7*)_option),INT8_C(11)))==(((T3)'n'))){ if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(11))){ tmp2/*state*/=INT8_C(11); } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } break; default:; tmp2/*state*/=INT8_C(0); } /*inspect]*/ break; case 119: if((r7item(((T7*)_option),INT8_C(3)))==(((T3)'a'))){ if((r7item(((T7*)_option),INT8_C(4)))==(((T3)'c'))){ if((r7item(((T7*)_option),INT8_C(5)))==(((T3)'o'))){ if((r7item(((T7*)_option),INT8_C(6)))==(((T3)'m'))){ if((r7item(((T7*)_option),INT8_C(7)))==(((T3)'\137'))){ if((r7item(((T7*)_option),INT8_C(8)))==(((T3)'p'))){ if((r7item(((T7*)_option),INT8_C(9)))==(((T3)'o'))){ if((r7item(((T7*)_option),INT8_C(10)))==(((T3)'i'))){ if((r7item(((T7*)_option),INT8_C(11)))==(((T3)'n'))){ if((r7item(((T7*)_option),INT8_C(12)))==(((T3)'t'))){ if((r7item(((T7*)_option),INT8_C(13)))==(((T3)'e'))){ if((r7item(((T7*)_option),INT8_C(14)))==(((T3)'r'))){ if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(14))){ tmp2/*state*/=INT8_C(4); } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } break; case 98: if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(2))){ tmp2/*state*/=INT8_C(6); } else{ if((r7item(((T7*)_option),INT8_C(3)))==(((T3)'u'))){ if((r7item(((T7*)_option),INT8_C(4)))==(((T3)'s'))){ if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(4))){ tmp2/*state*/=INT8_C(5); } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } break; case 97: if((r7item(((T7*)_option),INT8_C(3)))==(((T3)'p'))){ if((r7item(((T7*)_option),INT8_C(4)))==(((T3)'p'))){ if((r7item(((T7*)_option),INT8_C(5)))==(((T3)'l'))){ if((r7item(((T7*)_option),INT8_C(6)))==(((T3)'i'))){ if((r7item(((T7*)_option),INT8_C(7)))==(((T3)'c'))){ if((r7item(((T7*)_option),INT8_C(8)))==(((T3)'a'))){ if((r7item(((T7*)_option),INT8_C(9)))==(((T3)'t'))){ if((r7item(((T7*)_option),INT8_C(10)))==(((T3)'i'))){ if((r7item(((T7*)_option),INT8_C(11)))==(((T3)'o'))){ if((r7item(((T7*)_option),INT8_C(12)))==(((T3)'n'))){ if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(12))){ tmp2/*state*/=INT8_C(7); } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } break; case 105: tmp4/*inspectExpression*/=r7item(((T7*)_option),INT8_C(3)); /*[inspect*/ switch(tmp4/*inspectExpression*/){ case 100: if((r7item(((T7*)_option),INT8_C(4)))==(((T3)'e'))){ if((r7item(((T7*)_option),INT8_C(5)))==(((T3)'n'))){ if((r7item(((T7*)_option),INT8_C(6)))==(((T3)'t'))){ if((r7item(((T7*)_option),INT8_C(7)))==(((T3)'i'))){ if((r7item(((T7*)_option),INT8_C(8)))==(((T3)'f'))){ if((r7item(((T7*)_option),INT8_C(9)))==(((T3)'i'))){ if((r7item(((T7*)_option),INT8_C(10)))==(((T3)'e'))){ if((r7item(((T7*)_option),INT8_C(11)))==(((T3)'r'))){ if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(11))){ tmp2/*state*/=INT8_C(8); } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } break; case 103: if((r7item(((T7*)_option),INT8_C(4)))==(((T3)'n'))){ if((r7item(((T7*)_option),INT8_C(5)))==(((T3)'o'))){ if((r7item(((T7*)_option),INT8_C(6)))==(((T3)'r'))){ if((r7item(((T7*)_option),INT8_C(7)))==(((T3)'e'))){ if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(7))){ tmp2/*state*/=INT8_C(12); } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } break; default:; tmp2/*state*/=INT8_C(0); } /*inspect]*/ break; case 120: if((r7item(((T7*)_option),INT8_C(3)))==(((T3)'\137'))){ if((r7item(((T7*)_option),INT8_C(4)))==(((T3)'o'))){ if((r7item(((T7*)_option),INT8_C(5)))==(((T3)'f'))){ if((r7item(((T7*)_option),INT8_C(6)))==(((T3)'f'))){ if((r7item(((T7*)_option),INT8_C(7)))==(((T3)'s'))){ if((r7item(((T7*)_option),INT8_C(8)))==(((T3)'e'))){ if((r7item(((T7*)_option),INT8_C(9)))==(((T3)'t'))){ if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(9))){ tmp2/*state*/=INT8_C(9); } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } break; case 121: if((r7item(((T7*)_option),INT8_C(3)))==(((T3)'\137'))){ if((r7item(((T7*)_option),INT8_C(4)))==(((T3)'o'))){ if((r7item(((T7*)_option),INT8_C(5)))==(((T3)'f'))){ if((r7item(((T7*)_option),INT8_C(6)))==(((T3)'f'))){ if((r7item(((T7*)_option),INT8_C(7)))==(((T3)'s'))){ if((r7item(((T7*)_option),INT8_C(8)))==(((T3)'e'))){ if((r7item(((T7*)_option),INT8_C(9)))==(((T3)'t'))){ if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(9))){ tmp2/*state*/=INT8_C(10); } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } break; case 99: if((r7item(((T7*)_option),INT8_C(3)))==(((T3)'r'))){ if((r7item(((T7*)_option),INT8_C(4)))==(((T3)'o'))){ if((r7item(((T7*)_option),INT8_C(5)))==(((T3)'p'))){ if(((/*RF2*/(((T7*)_option))->_count/*3p*/))==(INT8_C(5))){ tmp2/*state*/=INT8_C(13); } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } } else{ tmp2/*state*/=INT8_C(0); } break; default:; tmp2/*state*/=INT8_C(0); } /*inspect]*/ } else{ tmp2/*state*/=INT8_C(0); } /*[inspect*/ switch(tmp2/*state*/){ case 1: r25print_help(); break; case 2: r25list_devices(C); break; case 3: if(r25init_pad(C,_value)){ R=((T6)(1)); } else{ _error=((T6)(1)); io_putc(((T3)'\042'),(stderr)); r43put_string(_value); r43put_string(se_ms(27,s25_69208946)); } break; case 4: if(r25init_wacom_pointer(C,_tmp_pointer,_value)){ R=((T6)(1)); } else{ _error=((T6)(1)); io_putc(((T3)'\042'),(stderr)); r43put_string(_value); r43put_string(se_ms(31,s25_447643634)); } break; case 5: r7copy((T7*)((/*RF2*/(C)->_ivy_bus/*8p*/)),_value); break; case 6: if(((int32_t)(_i))<(r25argument_count())){ _i=((int32_t)(_i))+(INT32_C(1)); r7copy((T7*)((/*RF2*/(C)->_ivy_bus/*8p*/)),((/*RF2*/((T244*)(r25command_arguments()))->_storage/*3p*/))[_i]); } else{ _error=((T6)(1)); r43put_string(se_ms(40,s25_1554692325)); } break; case 7: break; case 8: r7copy((T7*)((/*RF2*/(C)->_device_id/*8p*/)),_value); break; case 9: if(r7is_integer(((T7*)_value))){ (/*RF2*/(((T70*)_tmp_pointer))->_x_offset/*32p*/)=r7to_integer(((T7*)_value)); } else{ _error=((T6)(1)); io_putc(((T3)'\042'),(stderr)); r43put_string(_value); r43put_string(se_ms(50,s25_1491411490)); } break; case 10: if(r7is_integer(((T7*)_value))){ (/*RF2*/(((T70*)_tmp_pointer))->_y_offset/*32p*/)=r7to_integer(((T7*)_value)); } else{ _error=((T6)(1)); io_putc(((T3)'\042'),(stderr)); r43put_string(_value); r43put_string(se_ms(50,s25_751291742)); } break; case 11: if(r7is_real(((T7*)_value))){ (/*RF2*/(((T70*)_tmp_pointer))->_prediction_time/*32p*/)=r7to_real(((T7*)_value)); } else{ _error=((T6)(1)); io_putc(((T3)'\042'),(stderr)); r43put_string(_value); r43put_string(se_ms(49,s25_357338863)); } break; case 12: if(r7is_integer(((T7*)_value))){ (/*RF2*/(((T70*)_tmp_pointer))->_ignore_rate/*32p*/)=r7to_integer(((T7*)_value)); } else{ _error=((T6)(1)); io_putc(((T3)'\042'),(stderr)); r43put_string(_value); r43put_string(se_ms(53,s25_382517595)); } break; case 13: r43put_string(se_ms(29,s25_1370426634)); r43put_string(_value); io_putc(((T3)'\n'),(stderr)); if(r70is_valid_crop(_value)){ r70set_crop(((T70*)_tmp_pointer),_value); } else{ _error=((T6)(1)); io_putc(((T3)'\042'),(stderr)); r43put_string(_value); r43put_string(se_ms(74,s25_1387538644)); } break; default:; _error=((T6)(1)); r43put_string(se_ms(15,s25_1260406502)); r43put_string(((/*RF2*/((T244*)(r25command_arguments()))->_storage/*3p*/))[_i]); io_putc(((T3)'\n'),(stderr)); r25print_help(); } /*inspect]*/ _i=((int32_t)(_i))+(INT32_C(1)); } if(_error){ R=((T6)(0)); } if((r25argument_count())==(INT8_C(0))){ r25print_help(); } return R; }/*--*/ /*XINPUT_IVY*/void r25list_devices(T25* C){ T2 _i=0; T0* _devices=(void*)0; T0* _device=(void*)0; if((r150has_x_input_extension())==(0)){ r43put_line(se_ms(33,s25_1213754110)); } else{ _devices=(/*RF2*/((T191*)(r150x_input_extension()))->_devices/*p*/); _i=INT32_C(0); while(!(((int32_t)(_i))>((/*RF2*/(((T247*)_devices))->_upper/*3p*/)))) { _device=((/*RF2*/(((T247*)_devices))->_storage/*3p*/))[_i]; r53put_string((T53*)(r25std_output()),(/*RF2*/(((T68*)_device))->_name/*14p*/)); r53put_string((T53*)(r25std_output()),ms25_3479972); if(((/*RF2*/(((T68*)_device))->_type/*14p*/))==((void*)((void*)0))){ r53filtered_put_character((T53*)(r25std_output()),((T3)'\077')); } else{ r53put_string((T53*)(r25std_output()),(/*RF2*/(((T68*)_device))->_type/*14p*/)); } r53put_string((T53*)(r25std_output()),ms25_21190322); if((/*RF2*/(((T68*)_device))->_is_available_extension/*14p*/)){ r53put_line((T53*)(r25std_output()),ms25_557679246); } else{ r53put_line((T53*)(r25std_output()),ms25_1959886733); } _i=((int32_t)(_i))+(INT32_C(1)); } } }/*--*/ /*XINPUT_IVY*/void r25print_help(void){ r46put_string(se_ms(4506,s25_1126339109)); }/*--*/ /*XINPUT_IVY*/T6 r25init_pad(T25* C,T0* a1){ T6 R=0; T0* _pad=(void*)0; T0* _message_header=(void*)0; _pad=r25subscribe_input(C,a1); if((_pad)!=((void*)((void*)0))){ R=((T6)(1)); _message_header=se_ms(23,s25_1948078333); r7append(((T7*)_message_header),(/*RF2*/(C)->_device_id/*8p*/)); r7append(((T7*)_message_header),ms25_946366); r68when_moved(((T68*)_pad),(/*RF2*/(C)->_screen/*8p*/),agenT25f25l198c28((T0*)C,_message_header)); r68when_proximity_out(((T68*)_pad),(/*RF2*/(C)->_screen/*8p*/),agenT25f25l199c36((T0*)C,_message_header)); _message_header=se_ms(20,s25_1666922512); r7append(((T7*)_message_header),(/*RF2*/(C)->_device_id/*8p*/)); r7append(((T7*)_message_header),ms25_4487261); r68when_button_pressed(((T68*)_pad),(/*RF2*/(C)->_screen/*8p*/),agenT25f25l204c37((T0*)C,_message_header)); r68when_button_released(((T68*)_pad),(/*RF2*/(C)->_screen/*8p*/),agenT25f25l205c38((T0*)C,_message_header)); } return R; }/*--*/ /*XINPUT_IVY*/void r25decode_application_name_option(T25* C){ T2 _i=0; T2 _equal_index=0; _i=INT32_C(1); while(!(((int32_t)(_i))>(r25argument_count()))) { if(r7has_prefix((T7*)(((/*RF2*/((T244*)(r25command_arguments()))->_storage/*3p*/))[_i]),ms25_92383297)){ r7copy((T7*)((/*RF2*/(C)->_application_name/*8p*/)),((/*RF2*/((T244*)(r25command_arguments()))->_storage/*3p*/))[_i]); _equal_index=r7first_index_of((T7*)((/*RF2*/(C)->_application_name/*8p*/)),((T3)'\075')); r7remove_head((T7*)((/*RF2*/(C)->_application_name/*8p*/)),_equal_index); } _i=((int32_t)(_i))+(INT32_C(1)); } }/*--*/ /*XINPUT_IVY*/void r25left_slider_out(T25* C,T0* a1,T0* a2){ T0* _message=(void*)0; _message=ms25_0bc25c15l400; r7copy(((T7*)_message),a1); r7extend(((T7*)_message),((T3)'0')); r7append(((T7*)_message),ms25_1403610646bc25); r2append_in(x_device_event_time,_message); r71send_message((T71*)((/*RF2*/(C)->_ivy/*8p*/)),_message); /*SFN*/(C->_left_pad_position/*8p*/)=INT32_C(0); }/*--*/ /*XINPUT_IVY*/void r25pad_button_pressed(T25* C,T0* a1,T0* a2){ T0* _message=(void*)0; _message=ms25_0bc25c15; r7copy(((T7*)_message),a1); r2append_in(x_device_button_event_number,_message); r7append(((T7*)_message),ms25_694149733); r2append_in(x_device_event_time,_message); r71send_message((T71*)((/*RF2*/(C)->_ivy/*8p*/)),_message); }/*--*/ /*XINPUT_IVY*/T2 r25argument_count(void){ T2 R=0; R=(/*RF2*/((T244*)(r25command_arguments()))->_upper/*3p*/); return R; }/*--*/ /*XINPUT_IVY*/void r25pad_button_released(T25* C,T0* a1,T0* a2){ T0* _message=(void*)0; _message=ms25_0bc25; r7copy(((T7*)_message),a1); r2append_in(x_device_button_event_number,_message); r7append(((T7*)_message),ms25_314746909); r2append_in(x_device_event_time,_message); r71send_message((T71*)((/*RF2*/(C)->_ivy/*8p*/)),_message); }/*--*/ /*XINPUT_IVY*/void r25make(T25* C){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T6 _ready=0; /*SFN*/(C->_application_name/*8p*/)=se_ms(5,s25_89639); /*SFN*/(C->_ivy_bus/*8p*/)=se_ms(0,s25_0); /*SFN*/(C->_device_id/*8p*/)=se_ms(7,s25_1957581); /*SFN*/(C->_screen/*8p*/)=((/*UT*/(void)((T65*)(r25vision()))),r65root_window()); r25decode_application_name_option(C); tmp0/*new*/=((T0*)(new71())); r71make(((T71*)tmp0/*new*/),(/*RF2*/(C)->_application_name/*8p*/)); /*SFN*/(C->_ivy/*8p*/)=tmp0/*new*/; /*tmp0.unlock*/ _ready=((T6)(r25decode_options(C))); if(_ready){ r71start((T71*)((/*RF2*/(C)->_ivy/*8p*/)),(/*RF2*/(C)->_ivy_bus/*8p*/)); r155add_job((T155*)(r133current_loop(((T133*)/*no_dispatch.e*/(/*RF2*/((T65*)(r25vision()))->_loop_stack/*6p*/)))),(/*RF2*/(C)->_ivy/*8p*/)); r65start((T65*)(r25vision())); } }/*--*/ /*XINPUT_IVY*/T0* r25subscribe_input(T25* C,T0* a1){ /*[INTERNAL_C_LOCAL list*/ T6 tmp0; /*INTERNAL_C_LOCAL list]*/ T0* R=(void*)0; T2 _i=0; T0* _devices=(void*)0; if((r150has_x_input_extension())==(0)){ r43put_line(se_ms(33,s25_1213754110)); } else{ _devices=(/*RF2*/((T191*)(r150x_input_extension()))->_devices/*p*/); _i=INT32_C(0); while(1){ tmp0/*or else*/=((T6)(((int32_t)(_i))>((/*RF2*/(((T247*)_devices))->_upper/*3p*/)))); if(tmp0/*or else*/){ } else{ tmp0/*or else*/=((T6)((R)!=((void*)((void*)0)))); } if(tmp0/*or else*/){ break; } if(r7is_equal((T7*)((/*RF2*/((T68*)(((/*RF2*/(((T247*)_devices))->_storage/*3p*/))[_i]))->_name/*14p*/)),a1)){ R=((/*RF2*/(((T247*)_devices))->_storage/*3p*/))[_i]; if((/*RF2*/(((T68*)R))->_is_available_extension/*14p*/)){ r68connect(((T68*)R)); } else{ R=(void*)0; } } _i=((int32_t)(_i))+(INT32_C(1)); } } return R; }/*--*/ /*XINPUT_IVY*/T6 r25init_wacom_pointer(T25* C,T0* a1,T0* a2){ T6 R=0; T0* _pointer=(void*)0; T0* _message_header=(void*)0; T0* _wacom_pointer=(void*)0; _pointer=r25subscribe_input(C,a2); if((_pointer)!=((void*)((void*)0))){ R=((T6)(1)); _wacom_pointer=r70twin(((T70*)a1)); _message_header=se_ms(17,s25_765567725); r7append(((T7*)_message_header),(/*RF2*/(C)->_device_id/*8p*/)); r70set_message_header(((T70*)_wacom_pointer),_message_header); r70crop_identifier(((T70*)_wacom_pointer),(/*RF2*/(C)->_device_id/*8p*/)); r68when_moved(((T68*)_pointer),(/*RF2*/(C)->_screen/*8p*/),agenT25f25l223c32(_wacom_pointer)); r68when_button_pressed(((T68*)_pointer),(/*RF2*/(C)->_screen/*8p*/),agenT25f25l224c41(_wacom_pointer)); r68when_button_released(((T68*)_pointer),(/*RF2*/(C)->_screen/*8p*/),agenT25f25l225c42(_wacom_pointer)); r68when_proximity_in(((T68*)_pointer),(/*RF2*/(C)->_screen/*8p*/),agenT25f25l226c39(_wacom_pointer)); r68when_proximity_out(((T68*)_pointer),(/*RF2*/(C)->_screen/*8p*/),agenT25f25l227c40(_wacom_pointer)); } return R; }/*--*/ T0*oBC30command_arguments=(void*)0; int fBC30command_arguments=0; /*XINPUT_IVY*/T0* r25command_arguments(void){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ T2 _i=0; T0* _arg=(void*)0; if(fBC30command_arguments==0){fBC30command_arguments=1;{ _i=se_argc; tmp0/*new*/=((T0*)(new244())); r244make(((T244*)tmp0/*new*/),_i); oBC30command_arguments=tmp0/*new*/; /*tmp0.unlock*/ while(!((_i)==(INT8_C(0)))) { _i=((int32_t)(_i))-(INT32_C(1)); _arg=((T0*)se_string(se_argv[_i])); ((/*RF2*/(((T244*)oBC30command_arguments))->_storage/*3p*/))[_i]=(_arg); } }} return oBC30command_arguments; }/*--*/ /*XINPUT_IVY*/void r25slider_event(T25* C,T0* a1,T0* a2){ T2 _new_pad_position=0; T0* _message=(void*)0; _message=ms25_0; _new_pad_position=r68motion_axis_data(INT32_C(4)); if((_new_pad_position)!=((/*RF2*/(C)->_left_pad_position/*8p*/))){ r7copy(((T7*)_message),a1); r2append_in(_new_pad_position,_message); r7append(((T7*)_message),ms25_1403610646); r2append_in(x_device_event_time,_message); r71send_message((T71*)((/*RF2*/(C)->_ivy/*8p*/)),_message); /*SFN*/(C->_left_pad_position/*8p*/)=_new_pad_position; } _new_pad_position=r68motion_axis_data(INT32_C(5)); if((_new_pad_position)!=((/*RF2*/(C)->_right_pad_position/*8p*/))){ r7copy(((T7*)_message),a1); r2append_in(_new_pad_position,_message); r7append(((T7*)_message),ms25_1638797568); r2append_in(x_device_event_time,_message); r71send_message((T71*)((/*RF2*/(C)->_ivy/*8p*/)),_message); /*SFN*/(C->_right_pad_position/*8p*/)=_new_pad_position; } }/*--*/ void agent_launcher_FAST_ARRAY__STRING__(/*agent*/T0*a,T0* a1){ /*PROCEDURE[TUPLE[FAST_ARRAY[STRING]]]*/switch(((se_agent0*)a)->creation_mold_id){ case 0:{ ((se_agenT70f70l203c34*)a)->afp(((/*agent*/void*)a),a1); break; } } }/*--*/ void agent_launcher_X_INPUT_DEVICE(/*agent*/T0*a,T0* a1){ /*PROCEDURE[TUPLE[X_INPUT_DEVICE]]*/switch(((se_agent0*)a)->creation_mold_id){ case 1:{ ((se_agenT25f25l227c40*)a)->afp(((/*agent*/void*)a),a1); break; } case 2:{ ((se_agenT25f25l226c39*)a)->afp(((/*agent*/void*)a),a1); break; } case 3:{ ((se_agenT25f25l225c42*)a)->afp(((/*agent*/void*)a),a1); break; } case 4:{ ((se_agenT25f25l224c41*)a)->afp(((/*agent*/void*)a),a1); break; } case 5:{ ((se_agenT25f25l223c32*)a)->afp(((/*agent*/void*)a),a1); break; } case 6:{ ((se_agenT25f25l205c38*)a)->afp(((/*agent*/void*)a),a1); break; } case 7:{ ((se_agenT25f25l204c37*)a)->afp(((/*agent*/void*)a),a1); break; } case 8:{ ((se_agenT25f25l199c36*)a)->afp(((/*agent*/void*)a),a1); break; } case 9:{ ((se_agenT25f25l198c28*)a)->afp(((/*agent*/void*)a),a1); break; } } }/*--*/ /* -- ------------------------------------------------------------------------------------------------------------ -- Copyright notice below. Please read. -- -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE -- Copyright(C) 2003-2005: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE -- -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -- documentation files (the "Software"), to deal in the Software without restriction, including without -- limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -- the Software, and to permit persons to whom the Software is furnished to do so, subject to the following -- conditions: -- -- The above copyright notice and this permission notice shall be included in all copies or substantial -- portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -- EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -- OR OTHER DEALINGS IN THE SOFTWARE. -- -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr -- ------------------------------------------------------------------------------------------------------------ */ #ifdef SE_GC_LIB gc_agent *store_agent = NULL; gc_agent *gc_free_agent = NULL; int store_left_agent = 0; int count_agent=0; int gc_info_nb_agent = 0; fsoc *store_chunk_agent = NULL; fsoc H_agent = { { FSOC_SIZE, FSO_STORE_CHUNK, (void (*)(mch *, void *)) gc_align_mark_agent, (void (*)(mch *)) gc_sweep_agent }, NULL, (((FSOC_SIZE - sizeof (fsoc) + sizeof (double)) / sizeof (gc_agent)) - 1) }; #endif se_agent* new_agent(Tid id) { #ifdef SE_GC_LIB int i; gc_agent *agent; fsoc *c; if (store_left_agent > 1) { store_left_agent--; agent = store_agent++; } else if (gc_free_agent != NULL) { agent = gc_free_agent; gc_free_agent = agent->header.next; } else if (store_left_agent == 1) { store_left_agent = 0; store_chunk_agent->header.state_type = FSO_USED_CHUNK; agent = store_agent++; } else { c = gc_fsoc_get1 (); if (c == NULL) c = gc_fsoc_get2 (); store_chunk_agent = c; *store_chunk_agent = H_agent; store_agent = ((gc_agent *) (&(store_chunk_agent->first_object))); store_left_agent = H_agent.count_minus_one; agent = store_agent++; } agent->header.flag = FSOH_UNMARKED; for(i=0;i<(sizeof(se_agent)/sizeof(int));i++) ((int*) (agent))[i] = 0; #else /* SE_GC_LIB */ se_agent* agent = se_calloc(1,sizeof(se_agent)); #endif /* SE_GC_LIB */ ((se_agent*) agent)->u0.id = id; #ifdef SE_GC_LIB gc_info_nb_agent++; #endif /* SE_GC_LIB */ return (se_agent *) agent; } #ifdef SE_GC_LIB void gc_sweep_agent (fsoc * c) { gc_agent *a1, *a2, *flt, flh; a1 = ((gc_agent *) (&(c->first_object))); if (c->header.state_type == FSO_STORE_CHUNK) { for (; a1 < store_agent; a1++) { if ((a1->header.flag) == FSOH_MARKED) { a1->header.flag = FSOH_UNMARKED; } else if ((a1->header.flag) == FSOH_UNMARKED) { a1->header.next = gc_free_agent; gc_free_agent = a1; } } } else { int dead = 1; flh.header.next = NULL; flt = &flh; a2 = a1 + c->count_minus_one; for (; a1 <= a2; a2--) { if ((a2->header.flag) == FSOH_MARKED) { a2->header.flag = FSOH_UNMARKED; dead = 0; } else if ((a2->header.flag) == FSOH_UNMARKED) { flt->header.next = a2; flt = a2; } } if (dead) { gc_agent **prvnxt=&gc_free_agent; char *inf=(char*)((gc_agent*)(&(c->first_object))); char *sup=(char*)(((gc_agent*)(&(c->first_object)))+c->count_minus_one); a1=gc_free_agent; while(a1!=NULL) { if(inf>(char*)a1 || (char*)a1>sup) { *prvnxt=a1; prvnxt=&a1->header.next; } a1=a1->header.next; } *prvnxt=NULL; c->next = fsocfl; fsocfl = c; c->header.state_type = FSO_FREE_CHUNK; } else if (flh.header.next != NULL) { flt->header.next = gc_free_agent; gc_free_agent = flh.header.next; } } } void gc_align_mark_agent (fsoc * c, gc_agent * p) { gc_agent *b = ((gc_agent *) (&(c->first_object))); if ((c->header.state_type == FSO_STORE_CHUNK) && (((char *) p) >= ((char *) store_agent))) return; if (((char *) p) > ((char *) (b + (c->count_minus_one)))) return; if (((char *) p) < ((char *) b)) return; if (((((char *) p) - ((char *) b)) % sizeof (*p)) == 0) { se_agent *ta = (&(p->object)); (*(ta->u0.gc_mark_agent_mold))(ta); } } #endif /* SE_GC_LIB */ T0*ms25_0bc70c15; T0*ms25_0bc70c11; T0*ms70_952626; T0*ms70_15980; T0*ms25_0bc25c15l400; T0*ms25_92383297; T0*ms25_0bc70c15l97; T0*ms70_1874520032; T0*ms70_22702416; T0*ms70_22702411; T0*ms25_0bc25; T0*ms25_0bc70; T0*ms70_2097616536; T0*ms70_2057747851; T0*ms25_1403610646; T0*ms70_1257860908; T0*ms70_190991; T0*ms70_586741066; T0*ms25_0; T0*ms70_188916; T0*ms25_1959886733; T0*ms25_0bc25c15; T0*ms70_112207026; T0*ms25_3479972; T0*ms70_2112369621; T0*ms25_21190322; T0*ms70_10739030; T0*ms70_10739024; T0*ms70_10739017; T0*ms25_314746909; T0*ms70_1961093439; T0*ms25_1638797568; T0*ms70_220157120; T0*ms70_1699147265; T0*ms70_475; T0*ms70_697; T0*ms25_4487261bc70; T0*ms25_694149733; T0*ms70_1619665677; T0*ms70_1756148648; T0*ms70_1756148653; T0*ms150_1472358418; T0*ms70_4738061; T0*ms70_23436791; T0*ms25_557679246; T0*ms70_1940108584; T0*ms70_1461; T0*ms70_1466; T0*ms70_2676; T0*ms70_4725666; T0*ms70_4725661; T0*ms25_4487261; T0*ms70_1501987274; T0*ms70_104371129; T0*ms25_1403610646bc25; T0*ms70_104371267; T0*ms70_56246305bc70; T0*ms70_56246305; T0*ms25_946366; T0*ms25_0bc70c15l379; T0*se_ms(int c,char*e){ /* Allocate a Manifest STRING.*/ T7*s=new7(); s->_count=c; s->_capacity=c+1; s->_storage=((T9)new9(c+1)); memcpy(s->_storage,e,c+1); return((T0*)s);}/*--*/ T0*se_string(char*e){ /* Allocate an Eiffel STRING by copying C char*e */ int c=strlen(e); T7*s=new7(); s->_count=c; s->_capacity=c+1; s->_storage=((T9)new9(c+1)); memcpy(s->_storage,e,c+1); return((T0*)s);}/*--*/ void se_msi1(void){ ms25_0bc70c15=se_ms(0,s25_0); ms25_0bc70c11=se_ms(0,s25_0); ms70_952626=se_ms(7,s70_952626); ms70_15980=se_ms(4,s70_15980); ms25_0bc25c15l400=se_ms(0,s25_0); ms25_92383297=se_ms(13,s25_92383297); ms25_0bc70c15l97=se_ms(0,s25_0); ms70_1874520032=se_ms(15,s70_1874520032); ms70_22702416=se_ms(9,s70_22702416); ms70_22702411=se_ms(9,s70_22702411); ms25_0bc25=se_ms(0,s25_0); ms25_0bc70=se_ms(0,s25_0); ms70_2097616536=se_ms(59,s70_2097616536); ms70_2057747851=se_ms(20,s70_2057747851); ms25_1403610646=se_ms(16,s25_1403610646); ms70_1257860908=se_ms(11,s70_1257860908); ms70_190991=se_ms(6,s70_190991); ms70_586741066=se_ms(11,s70_586741066); ms25_0=se_ms(0,s25_0); ms70_188916=se_ms(6,s70_188916); ms25_1959886733=se_ms(13,s25_1959886733); ms25_0bc25c15=se_ms(0,s25_0); ms70_112207026=se_ms(10,s70_112207026); ms25_3479972=se_ms(8,s25_3479972); ms70_2112369621=se_ms(15,s70_2112369621); ms25_21190322=se_ms(9,s25_21190322); ms70_10739030=se_ms(8,s70_10739030); ms70_10739024=se_ms(8,s70_10739024); ms70_10739017=se_ms(8,s70_10739017); ms25_314746909=se_ms(16,s25_314746909); ms70_1961093439=se_ms(15,s70_1961093439); ms25_1638797568=se_ms(17,s25_1638797568); ms70_220157120=se_ms(23,s70_220157120); ms70_1699147265=se_ms(23,s70_1699147265); ms70_475=se_ms(2,s70_475); ms70_697=se_ms(2,s70_697); ms25_4487261bc70=se_ms(8,s25_4487261); ms25_694149733=se_ms(18,s25_694149733); ms70_1619665677=se_ms(16,s70_1619665677); ms70_1756148648=se_ms(13,s70_1756148648); ms70_1756148653=se_ms(13,s70_1756148653); ms150_1472358418=se_ms(15,s150_1472358418); ms70_4738061=se_ms(8,s70_4738061); ms70_23436791=se_ms(9,s70_23436791); ms25_557679246=se_ms(11,s25_557679246); ms70_1940108584=se_ms(13,s70_1940108584); ms70_1461=se_ms(3,s70_1461); ms70_1466=se_ms(3,s70_1466); ms70_2676=se_ms(3,s70_2676); ms70_4725666=se_ms(8,s70_4725666); se_msi2();}/*--*/ void se_msi2(void){ ms70_4725661=se_ms(8,s70_4725661); ms25_4487261=se_ms(8,s25_4487261); ms70_1501987274=se_ms(20,s70_1501987274); ms70_104371129=se_ms(13,s70_104371129); ms25_1403610646bc25=se_ms(16,s25_1403610646); ms70_104371267=se_ms(13,s70_104371267); ms70_56246305bc70=se_ms(9,s70_56246305); ms70_56246305=se_ms(9,s70_56246305); ms25_946366=se_ms(7,s25_946366); ms25_0bc70c15l379=se_ms(0,s25_0); }/*--*/ void manifest_string_mark1(void){ gc_mark7((T7*)ms25_0bc70c15); gc_mark7((T7*)ms25_0bc70c11); gc_mark7((T7*)ms70_952626); gc_mark7((T7*)ms70_15980); gc_mark7((T7*)ms25_0bc25c15l400); gc_mark7((T7*)ms25_92383297); gc_mark7((T7*)ms25_0bc70c15l97); gc_mark7((T7*)ms70_1874520032); gc_mark7((T7*)ms70_22702416); gc_mark7((T7*)ms70_22702411); gc_mark7((T7*)ms25_0bc25); gc_mark7((T7*)ms25_0bc70); gc_mark7((T7*)ms70_2097616536); gc_mark7((T7*)ms70_2057747851); gc_mark7((T7*)ms25_1403610646); gc_mark7((T7*)ms70_1257860908); gc_mark7((T7*)ms70_190991); gc_mark7((T7*)ms70_586741066); gc_mark7((T7*)ms25_0); gc_mark7((T7*)ms70_188916); gc_mark7((T7*)ms25_1959886733); gc_mark7((T7*)ms25_0bc25c15); gc_mark7((T7*)ms70_112207026); gc_mark7((T7*)ms25_3479972); gc_mark7((T7*)ms70_2112369621); gc_mark7((T7*)ms25_21190322); gc_mark7((T7*)ms70_10739030); gc_mark7((T7*)ms70_10739024); gc_mark7((T7*)ms70_10739017); gc_mark7((T7*)ms25_314746909); gc_mark7((T7*)ms70_1961093439); gc_mark7((T7*)ms25_1638797568); gc_mark7((T7*)ms70_220157120); gc_mark7((T7*)ms70_1699147265); gc_mark7((T7*)ms70_475); gc_mark7((T7*)ms70_697); gc_mark7((T7*)ms25_4487261bc70); gc_mark7((T7*)ms25_694149733); gc_mark7((T7*)ms70_1619665677); gc_mark7((T7*)ms70_1756148648); gc_mark7((T7*)ms70_1756148653); gc_mark7((T7*)ms150_1472358418); gc_mark7((T7*)ms70_4738061); gc_mark7((T7*)ms70_23436791); gc_mark7((T7*)ms25_557679246); gc_mark7((T7*)ms70_1940108584); gc_mark7((T7*)ms70_1461); gc_mark7((T7*)ms70_1466); gc_mark7((T7*)ms70_2676); gc_mark7((T7*)ms70_4725666); gc_mark7((T7*)ms70_4725661); gc_mark7((T7*)ms25_4487261); gc_mark7((T7*)ms70_1501987274); gc_mark7((T7*)ms70_104371129); gc_mark7((T7*)ms25_1403610646bc25); gc_mark7((T7*)ms70_104371267); gc_mark7((T7*)ms70_56246305bc70); gc_mark7((T7*)ms70_56246305); gc_mark7((T7*)ms25_946366); gc_mark7((T7*)ms25_0bc70c15l379); }/*--*/ void once_function_mark(void){ /*NON_VOID_NO_DISPATCH:*/ gc_mark46((T46*)(oBC13io)); gc_mark9((oBC102sprintf_buffer)); gc_mark43((T43*)(oBC13std_error)); /*Ordinary once functions:*/ if(NULL!=oBC30command_arguments)gc_mark244((T244*)(oBC30command_arguments)); if(NULL!=oBC26vision)gc_mark65((T65*)(oBC26vision)); if(NULL!=oBC13std_output)gc_mark53((T53*)(oBC13std_output)); if(NULL!=oBC65root_window)gc_mark73((T73*)(oBC65root_window)); if(NULL!=oBC7split_buffer)gc_mark257((T257*)(oBC7split_buffer)); if(NULL!=oBC7string_buffer)gc_mark7((T7*)(oBC7string_buffer)); if(NULL!=oBC150x_input_extension)gc_mark191((T191*)(oBC150x_input_extension)); if(NULL!=oBC143common_free_nodes)gc_mark288((T288*)(oBC143common_free_nodes)); }/*--*/ void gc_start(void){ if(gc_is_off)return; if(garbage_delayed())return; handle(SE_HANDLE_ENTER_GC,NULL); gcmt_tail_addr=(((char*)(gcmt[gcmt_used-1]))+(gcmt[gcmt_used-1])->size); ((gc25*)eiffel_root_object)->header.flag=FSOH_UNMARKED; gc_free113=(void*)0; gc_free123=(void*)0; if(na_env337.store_left>0){ na_env337.store->header.size=na_env337.store_left; na_env337.store->header.magic_flag=RSOH_FREE; na_env337.store_left=0; } na_env337.chunk_list=NULL; na_env337.store_chunk=NULL; if(na_env336.store_left>0){ na_env336.store->header.size=na_env336.store_left; na_env336.store->header.magic_flag=RSOH_FREE; na_env336.store_left=0; } na_env336.chunk_list=NULL; na_env336.store_chunk=NULL; if(na_env335.store_left>0){ na_env335.store->header.size=na_env335.store_left; na_env335.store->header.magic_flag=RSOH_FREE; na_env335.store_left=0; } na_env335.chunk_list=NULL; na_env335.store_chunk=NULL; if(na_env334.store_left>0){ na_env334.store->header.size=na_env334.store_left; na_env334.store->header.magic_flag=RSOH_FREE; na_env334.store_left=0; } na_env334.chunk_list=NULL; na_env334.store_chunk=NULL; if(na_env333.store_left>0){ na_env333.store->header.size=na_env333.store_left; na_env333.store->header.magic_flag=RSOH_FREE; na_env333.store_left=0; } na_env333.chunk_list=NULL; na_env333.store_chunk=NULL; if(na_env332.store_left>0){ na_env332.store->header.size=na_env332.store_left; na_env332.store->header.magic_flag=RSOH_FREE; na_env332.store_left=0; } na_env332.chunk_list=NULL; na_env332.store_chunk=NULL; if(na_env331.store_left>0){ na_env331.store->header.size=na_env331.store_left; na_env331.store->header.magic_flag=RSOH_FREE; na_env331.store_left=0; } na_env331.chunk_list=NULL; na_env331.store_chunk=NULL; if(na_env330.store_left>0){ na_env330.store->header.size=na_env330.store_left; na_env330.store->header.magic_flag=RSOH_FREE; na_env330.store_left=0; } na_env330.chunk_list=NULL; na_env330.store_chunk=NULL; gc_free329=(void*)0; if(na_env328.store_left>0){ na_env328.store->header.size=na_env328.store_left; na_env328.store->header.magic_flag=RSOH_FREE; na_env328.store_left=0; } na_env328.chunk_list=NULL; na_env328.store_chunk=NULL; gc_free327=(void*)0; gc_free326=(void*)0; if(na_env324.store_left>0){ na_env324.store->header.size=na_env324.store_left; na_env324.store->header.magic_flag=RSOH_FREE; na_env324.store_left=0; } na_env324.chunk_list=NULL; na_env324.store_chunk=NULL; if(na_env321.store_left>0){ na_env321.store->header.size=na_env321.store_left; na_env321.store->header.magic_flag=RSOH_FREE; na_env321.store_left=0; } na_env321.chunk_list=NULL; na_env321.store_chunk=NULL; gc_free317=(void*)0; if(na_env316.store_left>0){ na_env316.store->header.size=na_env316.store_left; na_env316.store->header.magic_flag=RSOH_FREE; na_env316.store_left=0; } na_env316.chunk_list=NULL; na_env316.store_chunk=NULL; gc_free311=(void*)0; if(na_env310.store_left>0){ na_env310.store->header.size=na_env310.store_left; na_env310.store->header.magic_flag=RSOH_FREE; na_env310.store_left=0; } na_env310.chunk_list=NULL; na_env310.store_chunk=NULL; gc_free308=(void*)0; gc_free307=(void*)0; if(na_env306.store_left>0){ na_env306.store->header.size=na_env306.store_left; na_env306.store->header.magic_flag=RSOH_FREE; na_env306.store_left=0; } na_env306.chunk_list=NULL; na_env306.store_chunk=NULL; if(na_env305.store_left>0){ na_env305.store->header.size=na_env305.store_left; na_env305.store->header.magic_flag=RSOH_FREE; na_env305.store_left=0; } na_env305.chunk_list=NULL; na_env305.store_chunk=NULL; if(na_env304.store_left>0){ na_env304.store->header.size=na_env304.store_left; na_env304.store->header.magic_flag=RSOH_FREE; na_env304.store_left=0; } na_env304.chunk_list=NULL; na_env304.store_chunk=NULL; if(na_env303.store_left>0){ na_env303.store->header.size=na_env303.store_left; na_env303.store->header.magic_flag=RSOH_FREE; na_env303.store_left=0; } na_env303.chunk_list=NULL; na_env303.store_chunk=NULL; gc_free302=(void*)0; if(na_env301.store_left>0){ na_env301.store->header.size=na_env301.store_left; na_env301.store->header.magic_flag=RSOH_FREE; na_env301.store_left=0; } na_env301.chunk_list=NULL; na_env301.store_chunk=NULL; gc_free300=(void*)0; if(na_env299.store_left>0){ na_env299.store->header.size=na_env299.store_left; na_env299.store->header.magic_flag=RSOH_FREE; na_env299.store_left=0; } na_env299.chunk_list=NULL; na_env299.store_chunk=NULL; gc_free298=(void*)0; gc_free297=(void*)0; gc_free296=(void*)0; if(na_env295.store_left>0){ na_env295.store->header.size=na_env295.store_left; na_env295.store->header.magic_flag=RSOH_FREE; na_env295.store_left=0; } na_env295.chunk_list=NULL; na_env295.store_chunk=NULL; if(na_env294.store_left>0){ na_env294.store->header.size=na_env294.store_left; na_env294.store->header.magic_flag=RSOH_FREE; na_env294.store_left=0; } na_env294.chunk_list=NULL; na_env294.store_chunk=NULL; gc_free293=(void*)0; gc_free292=(void*)0; if(na_env291.store_left>0){ na_env291.store->header.size=na_env291.store_left; na_env291.store->header.magic_flag=RSOH_FREE; na_env291.store_left=0; } na_env291.chunk_list=NULL; na_env291.store_chunk=NULL; gc_free290=(void*)0; gc_free289=(void*)0; gc_free288=(void*)0; gc_free287=(void*)0; gc_free284=(void*)0; if(na_env283.store_left>0){ na_env283.store->header.size=na_env283.store_left; na_env283.store->header.magic_flag=RSOH_FREE; na_env283.store_left=0; } na_env283.chunk_list=NULL; na_env283.store_chunk=NULL; if(na_env282.store_left>0){ na_env282.store->header.size=na_env282.store_left; na_env282.store->header.magic_flag=RSOH_FREE; na_env282.store_left=0; } na_env282.chunk_list=NULL; na_env282.store_chunk=NULL; if(na_env281.store_left>0){ na_env281.store->header.size=na_env281.store_left; na_env281.store->header.magic_flag=RSOH_FREE; na_env281.store_left=0; } na_env281.chunk_list=NULL; na_env281.store_chunk=NULL; gc_free280=(void*)0; gc_free154=(void*)0; gc_free279=(void*)0; gc_free160=(void*)0; gc_free277=(void*)0; gc_free276=(void*)0; gc_free275=(void*)0; gc_free273=(void*)0; gc_free271=(void*)0; gc_free269=(void*)0; gc_free268=(void*)0; gc_free146=(void*)0; gc_free267=(void*)0; gc_free149=(void*)0; gc_free266=(void*)0; gc_free148=(void*)0; gc_free265=(void*)0; if(na_env264.store_left>0){ na_env264.store->header.size=na_env264.store_left; na_env264.store->header.magic_flag=RSOH_FREE; na_env264.store_left=0; } na_env264.chunk_list=NULL; na_env264.store_chunk=NULL; gc_free263=(void*)0; gc_free262=(void*)0; gc_free261=(void*)0; gc_free260=(void*)0; gc_free259=(void*)0; gc_free257=(void*)0; gc_free256=(void*)0; if(na_env255.store_left>0){ na_env255.store->header.size=na_env255.store_left; na_env255.store->header.magic_flag=RSOH_FREE; na_env255.store_left=0; } na_env255.chunk_list=NULL; na_env255.store_chunk=NULL; if(na_env254.store_left>0){ na_env254.store->header.size=na_env254.store_left; na_env254.store->header.magic_flag=RSOH_FREE; na_env254.store_left=0; } na_env254.chunk_list=NULL; na_env254.store_chunk=NULL; gc_free253=(void*)0; gc_free250=(void*)0; gc_free153=(void*)0; gc_free249=(void*)0; gc_free248=(void*)0; gc_free155=(void*)0; gc_free73=(void*)0; gc_free134=(void*)0; gc_free133=(void*)0; gc_free131=(void*)0; gc_free53=(void*)0; gc_free46=(void*)0; gc_free191=(void*)0; gc_free247=(void*)0; gc_free68=(void*)0; gc_free43=(void*)0; gc_free70=(void*)0; gc_free244=(void*)0; if(na_env9.store_left>0){ na_env9.store->header.size=na_env9.store_left; na_env9.store->header.magic_flag=RSOH_FREE; na_env9.store_left=0; } na_env9.chunk_list=NULL; na_env9.store_chunk=NULL; gc_free7=(void*)0; gc_free71=(void*)0; gc_free65=(void*)0; gc_free25=(void*)0; gc_mark25(eiffel_root_object); manifest_string_mark1(); once_function_mark(); {int i=SE_MAXID-1; while(i>=0){ if(g[i]!=NULL)gc_mark7(g[i]); i--;} } {int i=SE_MAXID-1; while(i>=0){ if(t[i]!=NULL)gc_mark7(t[i]); i--;} } mark_stack_and_registers(); gc_sweep(); collector_counter++; handle(SE_HANDLE_EXIT_GC,NULL); }/*--*/ gc113*store113=(void*)0; int store_left113=0; fsoc*store_chunk113=(void*)0; gc113*gc_free113=(void*)0; gc123*store123=(void*)0; int store_left123=0; fsoc*store_chunk123=(void*)0; gc123*gc_free123=(void*)0; na_env na_env337={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark337}; na_env na_env336={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark336}; na_env na_env335={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark335}; na_env na_env334={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark334}; na_env na_env333={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark333}; na_env na_env332={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark332}; na_env na_env331={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark331}; na_env na_env330={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark330}; gc329*store329=(void*)0; int store_left329=0; fsoc*store_chunk329=(void*)0; gc329*gc_free329=(void*)0; na_env na_env328={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark328}; gc327*store327=(void*)0; int store_left327=0; fsoc*store_chunk327=(void*)0; gc327*gc_free327=(void*)0; gc326*store326=(void*)0; int store_left326=0; fsoc*store_chunk326=(void*)0; gc326*gc_free326=(void*)0; na_env na_env324={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark324}; na_env na_env321={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark321}; gc317*store317=(void*)0; int store_left317=0; fsoc*store_chunk317=(void*)0; gc317*gc_free317=(void*)0; na_env na_env316={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark316}; gc311*store311=(void*)0; int store_left311=0; fsoc*store_chunk311=(void*)0; gc311*gc_free311=(void*)0; na_env na_env310={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark310}; gc308*store308=(void*)0; int store_left308=0; fsoc*store_chunk308=(void*)0; gc308*gc_free308=(void*)0; gc307*store307=(void*)0; int store_left307=0; fsoc*store_chunk307=(void*)0; gc307*gc_free307=(void*)0; na_env na_env306={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark306}; na_env na_env305={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark305}; na_env na_env304={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark304}; na_env na_env303={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark303}; gc302*store302=(void*)0; int store_left302=0; fsoc*store_chunk302=(void*)0; gc302*gc_free302=(void*)0; na_env na_env301={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark301}; gc300*store300=(void*)0; int store_left300=0; fsoc*store_chunk300=(void*)0; gc300*gc_free300=(void*)0; na_env na_env299={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark299}; gc298*store298=(void*)0; int store_left298=0; fsoc*store_chunk298=(void*)0; gc298*gc_free298=(void*)0; gc297*store297=(void*)0; int store_left297=0; fsoc*store_chunk297=(void*)0; gc297*gc_free297=(void*)0; gc296*store296=(void*)0; int store_left296=0; fsoc*store_chunk296=(void*)0; gc296*gc_free296=(void*)0; na_env na_env295={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark295}; na_env na_env294={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark294}; gc293*store293=(void*)0; int store_left293=0; fsoc*store_chunk293=(void*)0; gc293*gc_free293=(void*)0; gc292*store292=(void*)0; int store_left292=0; fsoc*store_chunk292=(void*)0; gc292*gc_free292=(void*)0; na_env na_env291={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark291}; gc290*store290=(void*)0; int store_left290=0; fsoc*store_chunk290=(void*)0; gc290*gc_free290=(void*)0; gc289*store289=(void*)0; int store_left289=0; fsoc*store_chunk289=(void*)0; gc289*gc_free289=(void*)0; gc288*store288=(void*)0; int store_left288=0; fsoc*store_chunk288=(void*)0; gc288*gc_free288=(void*)0; gc287*store287=(void*)0; int store_left287=0; fsoc*store_chunk287=(void*)0; gc287*gc_free287=(void*)0; gc284*store284=(void*)0; int store_left284=0; fsoc*store_chunk284=(void*)0; gc284*gc_free284=(void*)0; na_env na_env283={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark283}; na_env na_env282={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark282}; na_env na_env281={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark281}; gc280*store280=(void*)0; int store_left280=0; fsoc*store_chunk280=(void*)0; gc280*gc_free280=(void*)0; gc154*store154=(void*)0; int store_left154=0; fsoc*store_chunk154=(void*)0; gc154*gc_free154=(void*)0; gc279*store279=(void*)0; int store_left279=0; fsoc*store_chunk279=(void*)0; gc279*gc_free279=(void*)0; gc160*store160=(void*)0; int store_left160=0; fsoc*store_chunk160=(void*)0; gc160*gc_free160=(void*)0; gc277*store277=(void*)0; int store_left277=0; fsoc*store_chunk277=(void*)0; gc277*gc_free277=(void*)0; gc276*store276=(void*)0; int store_left276=0; fsoc*store_chunk276=(void*)0; gc276*gc_free276=(void*)0; gc275*store275=(void*)0; int store_left275=0; fsoc*store_chunk275=(void*)0; gc275*gc_free275=(void*)0; gc273*store273=(void*)0; int store_left273=0; fsoc*store_chunk273=(void*)0; gc273*gc_free273=(void*)0; gc271*store271=(void*)0; int store_left271=0; fsoc*store_chunk271=(void*)0; gc271*gc_free271=(void*)0; gc269*store269=(void*)0; int store_left269=0; fsoc*store_chunk269=(void*)0; gc269*gc_free269=(void*)0; gc268*store268=(void*)0; int store_left268=0; fsoc*store_chunk268=(void*)0; gc268*gc_free268=(void*)0; gc146*store146=(void*)0; int store_left146=0; fsoc*store_chunk146=(void*)0; gc146*gc_free146=(void*)0; gc267*store267=(void*)0; int store_left267=0; fsoc*store_chunk267=(void*)0; gc267*gc_free267=(void*)0; gc149*store149=(void*)0; int store_left149=0; fsoc*store_chunk149=(void*)0; gc149*gc_free149=(void*)0; gc266*store266=(void*)0; int store_left266=0; fsoc*store_chunk266=(void*)0; gc266*gc_free266=(void*)0; gc148*store148=(void*)0; int store_left148=0; fsoc*store_chunk148=(void*)0; gc148*gc_free148=(void*)0; gc265*store265=(void*)0; int store_left265=0; fsoc*store_chunk265=(void*)0; gc265*gc_free265=(void*)0; na_env na_env264={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark264}; gc263*store263=(void*)0; int store_left263=0; fsoc*store_chunk263=(void*)0; gc263*gc_free263=(void*)0; gc262*store262=(void*)0; int store_left262=0; fsoc*store_chunk262=(void*)0; gc262*gc_free262=(void*)0; gc261*store261=(void*)0; int store_left261=0; fsoc*store_chunk261=(void*)0; gc261*gc_free261=(void*)0; gc260*store260=(void*)0; int store_left260=0; fsoc*store_chunk260=(void*)0; gc260*gc_free260=(void*)0; gc259*store259=(void*)0; int store_left259=0; fsoc*store_chunk259=(void*)0; gc259*gc_free259=(void*)0; gc257*store257=(void*)0; int store_left257=0; fsoc*store_chunk257=(void*)0; gc257*gc_free257=(void*)0; gc256*store256=(void*)0; int store_left256=0; fsoc*store_chunk256=(void*)0; gc256*gc_free256=(void*)0; na_env na_env255={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark255}; na_env na_env254={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark254}; gc253*store253=(void*)0; int store_left253=0; fsoc*store_chunk253=(void*)0; gc253*gc_free253=(void*)0; gc250*store250=(void*)0; int store_left250=0; fsoc*store_chunk250=(void*)0; gc250*gc_free250=(void*)0; gc153*store153=(void*)0; int store_left153=0; fsoc*store_chunk153=(void*)0; gc153*gc_free153=(void*)0; gc249*store249=(void*)0; int store_left249=0; fsoc*store_chunk249=(void*)0; gc249*gc_free249=(void*)0; gc248*store248=(void*)0; int store_left248=0; fsoc*store_chunk248=(void*)0; gc248*gc_free248=(void*)0; gc155*store155=(void*)0; int store_left155=0; fsoc*store_chunk155=(void*)0; gc155*gc_free155=(void*)0; gc73*store73=(void*)0; int store_left73=0; fsoc*store_chunk73=(void*)0; gc73*gc_free73=(void*)0; gc134*store134=(void*)0; int store_left134=0; fsoc*store_chunk134=(void*)0; gc134*gc_free134=(void*)0; gc133*store133=(void*)0; int store_left133=0; fsoc*store_chunk133=(void*)0; gc133*gc_free133=(void*)0; gc131*store131=(void*)0; int store_left131=0; fsoc*store_chunk131=(void*)0; gc131*gc_free131=(void*)0; gc53*store53=(void*)0; int store_left53=0; fsoc*store_chunk53=(void*)0; gc53*gc_free53=(void*)0; gc46*store46=(void*)0; int store_left46=0; fsoc*store_chunk46=(void*)0; gc46*gc_free46=(void*)0; gc191*store191=(void*)0; int store_left191=0; fsoc*store_chunk191=(void*)0; gc191*gc_free191=(void*)0; gc247*store247=(void*)0; int store_left247=0; fsoc*store_chunk247=(void*)0; gc247*gc_free247=(void*)0; gc68*store68=(void*)0; int store_left68=0; fsoc*store_chunk68=(void*)0; gc68*gc_free68=(void*)0; gc43*store43=(void*)0; int store_left43=0; fsoc*store_chunk43=(void*)0; gc43*gc_free43=(void*)0; gc70*store70=(void*)0; int store_left70=0; fsoc*store_chunk70=(void*)0; gc70*gc_free70=(void*)0; gc244*store244=(void*)0; int store_left244=0; fsoc*store_chunk244=(void*)0; gc244*gc_free244=(void*)0; na_env na_env9={0,NULL,NULL,NULL,(void(*)(T0*))gc_mark9}; gc7*store7=(void*)0; int store_left7=0; fsoc*store_chunk7=(void*)0; gc7*gc_free7=(void*)0; gc71*store71=(void*)0; int store_left71=0; fsoc*store_chunk71=(void*)0; gc71*gc_free71=(void*)0; gc65*store65=(void*)0; int store_left65=0; fsoc*store_chunk65=(void*)0; gc65*gc_free65=(void*)0; gc25*store25=(void*)0; int store_left25=0; fsoc*store_chunk25=(void*)0; gc25*gc_free25=(void*)0; void gc_sweep113(fsoc*c){ gc113*o1,*o2; o1=((gc113*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free113; gc_free113=o1; } } } else{ int dead=1; gc113* old_gc_free = gc_free113; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free113; gc_free113=o1; } } if (dead){ gc_free113 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark113(T113*o){ if(((gc113*)o)->header.flag==FSOH_UNMARKED){ ((gc113*)o)->header.flag=FSOH_MARKED; /*ip*/if(NULL!=o->_stream)gc_mark153((T153*)(o->_stream)); } }/*--*/ void gc_align_mark113(fsoc*c,gc113*p){ gc113*b=((gc113*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store113)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T113*o=(&(p->object)); ((gc113*)o)->header.flag=FSOH_MARKED; /*ip*/if(NULL!=o->_stream)gc_mark153((T153*)(o->_stream)); } } }/*--*/ fsoc H113={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark113, (void(*)(mch*))gc_sweep113},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc113))-1)}; T113*new113(void){ gc113*n; fsoc*c; if(store_left113>1){ store_left113--; n=store113++; } else if(gc_free113!=NULL){ n=gc_free113; gc_free113=n->header.next; } else if(store_left113==1){ store_left113=0; store_chunk113->header.state_type=FSO_USED_CHUNK; n=store113++; } else{ c=gc_fsoc_get1(); if(gc_free113!=NULL){ n=gc_free113; gc_free113=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk113=c; *store_chunk113=H113; store113=((gc113*)(&(store_chunk113->first_object))); store_left113=H113.count_minus_one; n=store113++; } } n->header.flag=FSOH_UNMARKED; n->object=M113; return((T113*)n); }/*--*/ void gc_sweep123(fsoc*c){ gc123*o1,*o2; o1=((gc123*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free123; gc_free123=o1; } } } else{ int dead=1; gc123* old_gc_free = gc_free123; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free123; gc_free123=o1; } } if (dead){ gc_free123 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark123(T123*o){ if(((gc123*)o)->header.flag==FSOH_UNMARKED){ ((gc123*)o)->header.flag=FSOH_MARKED; /*ip*/if(NULL!=o->_input_stream)Xgc_mark49((T0*)(o->_input_stream)); } }/*--*/ void gc_align_mark123(fsoc*c,gc123*p){ gc123*b=((gc123*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store123)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T123*o=(&(p->object)); ((gc123*)o)->header.flag=FSOH_MARKED; /*ip*/if(NULL!=o->_input_stream)Xgc_mark49((T0*)(o->_input_stream)); } } }/*--*/ fsoc H123={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark123, (void(*)(mch*))gc_sweep123},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc123))-1)}; T123*new123(void){ gc123*n; fsoc*c; if(store_left123>1){ store_left123--; n=store123++; } else if(gc_free123!=NULL){ n=gc_free123; gc_free123=n->header.next; } else if(store_left123==1){ store_left123=0; store_chunk123->header.state_type=FSO_USED_CHUNK; n=store123++; } else{ c=gc_fsoc_get1(); if(gc_free123!=NULL){ n=gc_free123; gc_free123=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk123=c; *store_chunk123=H123; store123=((gc123*)(&(store_chunk123->first_object))); store_left123=H123.count_minus_one; n=store123++; } } n->header.flag=FSOH_UNMARKED; n->object=M123; return((T123*)n); }/*--*/ void gc_mark337(T337 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; }}}} }/*--*/ T337 new337(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env337.store_left)){ rsoh*r=na_env337.store; na_env337.store_left-=size; if(na_env337.store_left>sizeof(rsoh)){ r->header.size=size; na_env337.store=((rsoh*)(((char*)(na_env337.store))+size)); } else { r->header.size=size+na_env337.store_left; na_env337.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T337)(r+1)); } return((T337)new_na(&na_env337,size)); }/*--*/ void gc_mark336(T336 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; }}}} }/*--*/ T336 new336(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env336.store_left)){ rsoh*r=na_env336.store; na_env336.store_left-=size; if(na_env336.store_left>sizeof(rsoh)){ r->header.size=size; na_env336.store=((rsoh*)(((char*)(na_env336.store))+size)); } else { r->header.size=size+na_env336.store_left; na_env336.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T336)(r+1)); } return((T336)new_na(&na_env336,size)); }/*--*/ void gc_mark335(T335 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; }}}} }/*--*/ T335 new335(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env335.store_left)){ rsoh*r=na_env335.store; na_env335.store_left-=size; if(na_env335.store_left>sizeof(rsoh)){ r->header.size=size; na_env335.store=((rsoh*)(((char*)(na_env335.store))+size)); } else { r->header.size=size+na_env335.store_left; na_env335.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T335)(r+1)); } return((T335)new_na(&na_env335,size)); }/*--*/ void gc_mark334(T334 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark245((T245*)(e)); }}}} }/*--*/ T334 new334(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env334.store_left)){ rsoh*r=na_env334.store; na_env334.store_left-=size; if(na_env334.store_left>sizeof(rsoh)){ r->header.size=size; na_env334.store=((rsoh*)(((char*)(na_env334.store))+size)); } else { r->header.size=size+na_env334.store_left; na_env334.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T334)(r+1)); } return((T334)new_na(&na_env334,size)); }/*--*/ void gc_mark333(T333 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark290((T290*)(e)); }}}} }/*--*/ T333 new333(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env333.store_left)){ rsoh*r=na_env333.store; na_env333.store_left-=size; if(na_env333.store_left>sizeof(rsoh)){ r->header.size=size; na_env333.store=((rsoh*)(((char*)(na_env333.store))+size)); } else { r->header.size=size+na_env333.store_left; na_env333.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T333)(r+1)); } return((T333)new_na(&na_env333,size)); }/*--*/ void gc_mark332(T332 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)Xgc_mark72((T0*)(e)); }}}} }/*--*/ T332 new332(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env332.store_left)){ rsoh*r=na_env332.store; na_env332.store_left-=size; if(na_env332.store_left>sizeof(rsoh)){ r->header.size=size; na_env332.store=((rsoh*)(((char*)(na_env332.store))+size)); } else { r->header.size=size+na_env332.store_left; na_env332.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T332)(r+1)); } return((T332)new_na(&na_env332,size)); }/*--*/ void gc_mark331(T331 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; }}}} }/*--*/ T331 new331(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env331.store_left)){ rsoh*r=na_env331.store; na_env331.store_left-=size; if(na_env331.store_left>sizeof(rsoh)){ r->header.size=size; na_env331.store=((rsoh*)(((char*)(na_env331.store))+size)); } else { r->header.size=size+na_env331.store_left; na_env331.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T331)(r+1)); } return((T331)new_na(&na_env331,size)); }/*--*/ void gc_mark330(T330 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark131((T131*)(e)); }}}} }/*--*/ T330 new330(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env330.store_left)){ rsoh*r=na_env330.store; na_env330.store_left-=size; if(na_env330.store_left>sizeof(rsoh)){ r->header.size=size; na_env330.store=((rsoh*)(((char*)(na_env330.store))+size)); } else { r->header.size=size+na_env330.store_left; na_env330.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T330)(r+1)); } return((T330)new_na(&na_env330,size)); }/*--*/ void gc_sweep329(fsoc*c){ gc329*o1,*o2; o1=((gc329*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item329(&(o1->object)); } else{ o1->header.next=gc_free329; gc_free329=o1; } } } else{ int dead=1; gc329* old_gc_free = gc_free329; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item329(&(o1->object)); dead=0;} else{ o1->header.next=gc_free329; gc_free329=o1; } } if (dead){ gc_free329 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_update_weak_ref_item329(T329* wr){ gc327* obj_ptr = (gc327*)(wr->_item); if (obj_ptr != NULL){ int swept = (((void*)obj_ptr) <= ((void*)wr)); if (swept != (obj_ptr->header.flag == FSOH_UNMARKED)) /* (already swept) xor marked */ wr->_item = NULL; } }/*--*/ void gc_mark329(T329*o){ ((gc329*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark329(fsoc*c,gc329*p){ gc329*b=((gc329*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store329)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T329*o=(&(p->object)); ((gc329*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H329={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark329, (void(*)(mch*))gc_sweep329},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc329))-1)}; T329*new329(void){ gc329*n; fsoc*c; if(store_left329>1){ store_left329--; n=store329++; } else if(gc_free329!=NULL){ n=gc_free329; gc_free329=n->header.next; } else if(store_left329==1){ store_left329=0; store_chunk329->header.state_type=FSO_USED_CHUNK; n=store329++; } else{ c=gc_fsoc_get1(); if(gc_free329!=NULL){ n=gc_free329; gc_free329=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk329=c; *store_chunk329=H329; store329=((gc329*)(&(store_chunk329->first_object))); store_left329=H329.count_minus_one; n=store329++; } } n->header.flag=FSOH_UNMARKED; n->object=M329; return((T329*)n); }/*--*/ void gc_mark328(T328 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark327((T327*)(e)); }}}} }/*--*/ T328 new328(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env328.store_left)){ rsoh*r=na_env328.store; na_env328.store_left-=size; if(na_env328.store_left>sizeof(rsoh)){ r->header.size=size; na_env328.store=((rsoh*)(((char*)(na_env328.store))+size)); } else { r->header.size=size+na_env328.store_left; na_env328.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T328)(r+1)); } return((T328)new_na(&na_env328,size)); }/*--*/ void gc_sweep327(fsoc*c){ gc327*o1,*o2; o1=((gc327*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free327; gc_free327=o1; } } } else{ int dead=1; gc327* old_gc_free = gc_free327; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free327; gc_free327=o1; } } if (dead){ gc_free327 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark327(T327*o){ begin: if(((gc327*)o)->header.flag==FSOH_UNMARKED){ ((gc327*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_item)gc_mark73((T73*)(o->_item)); o=(void*)o->_next; if((o!=NULL))goto begin; } }/*--*/ void gc_align_mark327(fsoc*c,gc327*p){ gc327*b=((gc327*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store327)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T327*o=(&(p->object)); begin: ((gc327*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_item)gc_mark73((T73*)(o->_item)); o=(void*)o->_next; if((o!=NULL)&&(((gc327*)o)->header.flag==FSOH_UNMARKED))goto begin; } } }/*--*/ fsoc H327={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark327, (void(*)(mch*))gc_sweep327},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc327))-1)}; T327*new327(void){ gc327*n; fsoc*c; if(store_left327>1){ store_left327--; n=store327++; } else if(gc_free327!=NULL){ n=gc_free327; gc_free327=n->header.next; } else if(store_left327==1){ store_left327=0; store_chunk327->header.state_type=FSO_USED_CHUNK; n=store327++; } else{ c=gc_fsoc_get1(); if(gc_free327!=NULL){ n=gc_free327; gc_free327=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk327=c; *store_chunk327=H327; store327=((gc327*)(&(store_chunk327->first_object))); store_left327=H327.count_minus_one; n=store327++; } } n->header.flag=FSOH_UNMARKED; n->object=M327; return((T327*)n); }/*--*/ void gc_sweep326(fsoc*c){ gc326*o1,*o2; o1=((gc326*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item_polymorph(&(o1->object._item)); } else{ o1->header.next=gc_free326; gc_free326=o1; } } } else{ int dead=1; gc326* old_gc_free = gc_free326; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item_polymorph(&(o1->object._item)); dead=0;} else{ o1->header.next=gc_free326; gc_free326=o1; } } if (dead){ gc_free326 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_update_weak_ref_item_polymorph(T0** item){ T0* obj_ptr = *item; if (obj_ptr != NULL){ int obj_size=se_strucT[obj_ptr->id]; int swept=(((void*)obj_ptr)<=((void*)item)); obj_ptr = (T0*)(((char*)obj_ptr) + obj_size); if (swept!=(((fso_header*)obj_ptr)->flag==FSOH_UNMARKED)) /* (already swept) xor marked */ *item = NULL; } }/*--*/ void gc_mark326(T326*o){ ((gc326*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark326(fsoc*c,gc326*p){ gc326*b=((gc326*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store326)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T326*o=(&(p->object)); ((gc326*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H326={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark326, (void(*)(mch*))gc_sweep326},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc326))-1)}; T326*new326(void){ gc326*n; fsoc*c; if(store_left326>1){ store_left326--; n=store326++; } else if(gc_free326!=NULL){ n=gc_free326; gc_free326=n->header.next; } else if(store_left326==1){ store_left326=0; store_chunk326->header.state_type=FSO_USED_CHUNK; n=store326++; } else{ c=gc_fsoc_get1(); if(gc_free326!=NULL){ n=gc_free326; gc_free326=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk326=c; *store_chunk326=H326; store326=((gc326*)(&(store_chunk326->first_object))); store_left326=H326.count_minus_one; n=store326++; } } n->header.flag=FSOH_UNMARKED; n->object=M326; return((T326*)n); }/*--*/ void gc_mark324(T324 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; }}}} }/*--*/ T324 new324(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env324.store_left)){ rsoh*r=na_env324.store; na_env324.store_left-=size; if(na_env324.store_left>sizeof(rsoh)){ r->header.size=size; na_env324.store=((rsoh*)(((char*)(na_env324.store))+size)); } else { r->header.size=size+na_env324.store_left; na_env324.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T324)(r+1)); } return((T324)new_na(&na_env324,size)); }/*--*/ void gc_mark321(T321 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark275((T275*)(e)); }}}} }/*--*/ T321 new321(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env321.store_left)){ rsoh*r=na_env321.store; na_env321.store_left-=size; if(na_env321.store_left>sizeof(rsoh)){ r->header.size=size; na_env321.store=((rsoh*)(((char*)(na_env321.store))+size)); } else { r->header.size=size+na_env321.store_left; na_env321.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T321)(r+1)); } return((T321)new_na(&na_env321,size)); }/*--*/ void gc_sweep317(fsoc*c){ gc317*o1,*o2; o1=((gc317*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item_polymorph(&(o1->object._item)); } else{ o1->header.next=gc_free317; gc_free317=o1; } } } else{ int dead=1; gc317* old_gc_free = gc_free317; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item_polymorph(&(o1->object._item)); dead=0;} else{ o1->header.next=gc_free317; gc_free317=o1; } } if (dead){ gc_free317 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark317(T317*o){ ((gc317*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark317(fsoc*c,gc317*p){ gc317*b=((gc317*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store317)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T317*o=(&(p->object)); ((gc317*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H317={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark317, (void(*)(mch*))gc_sweep317},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc317))-1)}; T317*new317(void){ gc317*n; fsoc*c; if(store_left317>1){ store_left317--; n=store317++; } else if(gc_free317!=NULL){ n=gc_free317; gc_free317=n->header.next; } else if(store_left317==1){ store_left317=0; store_chunk317->header.state_type=FSO_USED_CHUNK; n=store317++; } else{ c=gc_fsoc_get1(); if(gc_free317!=NULL){ n=gc_free317; gc_free317=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk317=c; *store_chunk317=H317; store317=((gc317*)(&(store_chunk317->first_object))); store_left317=H317.count_minus_one; n=store317++; } } n->header.flag=FSOH_UNMARKED; n->object=M317; return((T317*)n); }/*--*/ void gc_mark316(T316 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; }}}} }/*--*/ T316 new316(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env316.store_left)){ rsoh*r=na_env316.store; na_env316.store_left-=size; if(na_env316.store_left>sizeof(rsoh)){ r->header.size=size; na_env316.store=((rsoh*)(((char*)(na_env316.store))+size)); } else { r->header.size=size+na_env316.store_left; na_env316.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T316)(r+1)); } return((T316)new_na(&na_env316,size)); }/*--*/ void gc_sweep311(fsoc*c){ gc311*o1,*o2; o1=((gc311*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item_polymorph(&(o1->object._item)); } else{ o1->header.next=gc_free311; gc_free311=o1; } } } else{ int dead=1; gc311* old_gc_free = gc_free311; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item_polymorph(&(o1->object._item)); dead=0;} else{ o1->header.next=gc_free311; gc_free311=o1; } } if (dead){ gc_free311 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark311(T311*o){ ((gc311*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark311(fsoc*c,gc311*p){ gc311*b=((gc311*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store311)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T311*o=(&(p->object)); ((gc311*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H311={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark311, (void(*)(mch*))gc_sweep311},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc311))-1)}; T311*new311(void){ gc311*n; fsoc*c; if(store_left311>1){ store_left311--; n=store311++; } else if(gc_free311!=NULL){ n=gc_free311; gc_free311=n->header.next; } else if(store_left311==1){ store_left311=0; store_chunk311->header.state_type=FSO_USED_CHUNK; n=store311++; } else{ c=gc_fsoc_get1(); if(gc_free311!=NULL){ n=gc_free311; gc_free311=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk311=c; *store_chunk311=H311; store311=((gc311*)(&(store_chunk311->first_object))); store_left311=H311.count_minus_one; n=store311++; } } n->header.flag=FSOH_UNMARKED; n->object=M311; return((T311*)n); }/*--*/ void gc_mark310(T310 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; }}}} }/*--*/ T310 new310(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env310.store_left)){ rsoh*r=na_env310.store; na_env310.store_left-=size; if(na_env310.store_left>sizeof(rsoh)){ r->header.size=size; na_env310.store=((rsoh*)(((char*)(na_env310.store))+size)); } else { r->header.size=size+na_env310.store_left; na_env310.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T310)(r+1)); } return((T310)new_na(&na_env310,size)); }/*--*/ void gc_sweep308(fsoc*c){ gc308*o1,*o2; o1=((gc308*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item308(&(o1->object)); } else{ o1->header.next=gc_free308; gc_free308=o1; } } } else{ int dead=1; gc308* old_gc_free = gc_free308; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item308(&(o1->object)); dead=0;} else{ o1->header.next=gc_free308; gc_free308=o1; } } if (dead){ gc_free308 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_update_weak_ref_item308(T308* wr){ gc307* obj_ptr = (gc307*)(wr->_item); if (obj_ptr != NULL){ int swept = (((void*)obj_ptr) <= ((void*)wr)); if (swept != (obj_ptr->header.flag == FSOH_UNMARKED)) /* (already swept) xor marked */ wr->_item = NULL; } }/*--*/ void gc_mark308(T308*o){ ((gc308*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark308(fsoc*c,gc308*p){ gc308*b=((gc308*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store308)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T308*o=(&(p->object)); ((gc308*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H308={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark308, (void(*)(mch*))gc_sweep308},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc308))-1)}; T308*new308(void){ gc308*n; fsoc*c; if(store_left308>1){ store_left308--; n=store308++; } else if(gc_free308!=NULL){ n=gc_free308; gc_free308=n->header.next; } else if(store_left308==1){ store_left308=0; store_chunk308->header.state_type=FSO_USED_CHUNK; n=store308++; } else{ c=gc_fsoc_get1(); if(gc_free308!=NULL){ n=gc_free308; gc_free308=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk308=c; *store_chunk308=H308; store308=((gc308*)(&(store_chunk308->first_object))); store_left308=H308.count_minus_one; n=store308++; } } n->header.flag=FSOH_UNMARKED; n->object=M308; return((T308*)n); }/*--*/ void gc_sweep307(fsoc*c){ gc307*o1,*o2; o1=((gc307*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free307; gc_free307=o1; } } } else{ int dead=1; gc307* old_gc_free = gc_free307; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free307; gc_free307=o1; } } if (dead){ gc_free307 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark307(T307*o){ begin: if(((gc307*)o)->header.flag==FSOH_UNMARKED){ ((gc307*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_item)gc_mark68((T68*)(o->_item)); o=(void*)o->_next; if((o!=NULL))goto begin; } }/*--*/ void gc_align_mark307(fsoc*c,gc307*p){ gc307*b=((gc307*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store307)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T307*o=(&(p->object)); begin: ((gc307*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_item)gc_mark68((T68*)(o->_item)); o=(void*)o->_next; if((o!=NULL)&&(((gc307*)o)->header.flag==FSOH_UNMARKED))goto begin; } } }/*--*/ fsoc H307={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark307, (void(*)(mch*))gc_sweep307},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc307))-1)}; T307*new307(void){ gc307*n; fsoc*c; if(store_left307>1){ store_left307--; n=store307++; } else if(gc_free307!=NULL){ n=gc_free307; gc_free307=n->header.next; } else if(store_left307==1){ store_left307=0; store_chunk307->header.state_type=FSO_USED_CHUNK; n=store307++; } else{ c=gc_fsoc_get1(); if(gc_free307!=NULL){ n=gc_free307; gc_free307=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk307=c; *store_chunk307=H307; store307=((gc307*)(&(store_chunk307->first_object))); store_left307=H307.count_minus_one; n=store307++; } } n->header.flag=FSOH_UNMARKED; n->object=M307; return((T307*)n); }/*--*/ void gc_mark306(T306 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark307((T307*)(e)); }}}} }/*--*/ T306 new306(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env306.store_left)){ rsoh*r=na_env306.store; na_env306.store_left-=size; if(na_env306.store_left>sizeof(rsoh)){ r->header.size=size; na_env306.store=((rsoh*)(((char*)(na_env306.store))+size)); } else { r->header.size=size+na_env306.store_left; na_env306.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T306)(r+1)); } return((T306)new_na(&na_env306,size)); }/*--*/ void gc_mark305(T305 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark146((T146*)(e)); }}}} }/*--*/ T305 new305(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env305.store_left)){ rsoh*r=na_env305.store; na_env305.store_left-=size; if(na_env305.store_left>sizeof(rsoh)){ r->header.size=size; na_env305.store=((rsoh*)(((char*)(na_env305.store))+size)); } else { r->header.size=size+na_env305.store_left; na_env305.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T305)(r+1)); } return((T305)new_na(&na_env305,size)); }/*--*/ void gc_mark304(T304 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark149((T149*)(e)); }}}} }/*--*/ T304 new304(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env304.store_left)){ rsoh*r=na_env304.store; na_env304.store_left-=size; if(na_env304.store_left>sizeof(rsoh)){ r->header.size=size; na_env304.store=((rsoh*)(((char*)(na_env304.store))+size)); } else { r->header.size=size+na_env304.store_left; na_env304.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T304)(r+1)); } return((T304)new_na(&na_env304,size)); }/*--*/ void gc_mark303(T303 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark148((T148*)(e)); }}}} }/*--*/ T303 new303(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env303.store_left)){ rsoh*r=na_env303.store; na_env303.store_left-=size; if(na_env303.store_left>sizeof(rsoh)){ r->header.size=size; na_env303.store=((rsoh*)(((char*)(na_env303.store))+size)); } else { r->header.size=size+na_env303.store_left; na_env303.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T303)(r+1)); } return((T303)new_na(&na_env303,size)); }/*--*/ void gc_sweep302(fsoc*c){ gc302*o1,*o2; o1=((gc302*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item302(&(o1->object)); } else{ o1->header.next=gc_free302; gc_free302=o1; } } } else{ int dead=1; gc302* old_gc_free = gc_free302; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item302(&(o1->object)); dead=0;} else{ o1->header.next=gc_free302; gc_free302=o1; } } if (dead){ gc_free302 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_update_weak_ref_item302(T302* wr){ gc300* obj_ptr = (gc300*)(wr->_item); if (obj_ptr != NULL){ int swept = (((void*)obj_ptr) <= ((void*)wr)); if (swept != (obj_ptr->header.flag == FSOH_UNMARKED)) /* (already swept) xor marked */ wr->_item = NULL; } }/*--*/ void gc_mark302(T302*o){ ((gc302*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark302(fsoc*c,gc302*p){ gc302*b=((gc302*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store302)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T302*o=(&(p->object)); ((gc302*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H302={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark302, (void(*)(mch*))gc_sweep302},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc302))-1)}; T302*new302(void){ gc302*n; fsoc*c; if(store_left302>1){ store_left302--; n=store302++; } else if(gc_free302!=NULL){ n=gc_free302; gc_free302=n->header.next; } else if(store_left302==1){ store_left302=0; store_chunk302->header.state_type=FSO_USED_CHUNK; n=store302++; } else{ c=gc_fsoc_get1(); if(gc_free302!=NULL){ n=gc_free302; gc_free302=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk302=c; *store_chunk302=H302; store302=((gc302*)(&(store_chunk302->first_object))); store_left302=H302.count_minus_one; n=store302++; } } n->header.flag=FSOH_UNMARKED; n->object=M302; return((T302*)n); }/*--*/ void gc_mark301(T301 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark300((T300*)(e)); }}}} }/*--*/ T301 new301(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env301.store_left)){ rsoh*r=na_env301.store; na_env301.store_left-=size; if(na_env301.store_left>sizeof(rsoh)){ r->header.size=size; na_env301.store=((rsoh*)(((char*)(na_env301.store))+size)); } else { r->header.size=size+na_env301.store_left; na_env301.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T301)(r+1)); } return((T301)new_na(&na_env301,size)); }/*--*/ void gc_sweep300(fsoc*c){ gc300*o1,*o2; o1=((gc300*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free300; gc_free300=o1; } } } else{ int dead=1; gc300* old_gc_free = gc_free300; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free300; gc_free300=o1; } } if (dead){ gc_free300 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark300(T300*o){ begin: if(((gc300*)o)->header.flag==FSOH_UNMARKED){ ((gc300*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_key)gc_mark73((T73*)(o->_key)); /*3p*/if(NULL!=o->_item)gc_mark262((T262*)(o->_item)); o=(void*)o->_next; if((o!=NULL))goto begin; } }/*--*/ void gc_align_mark300(fsoc*c,gc300*p){ gc300*b=((gc300*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store300)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T300*o=(&(p->object)); begin: ((gc300*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_key)gc_mark73((T73*)(o->_key)); /*3p*/if(NULL!=o->_item)gc_mark262((T262*)(o->_item)); o=(void*)o->_next; if((o!=NULL)&&(((gc300*)o)->header.flag==FSOH_UNMARKED))goto begin; } } }/*--*/ fsoc H300={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark300, (void(*)(mch*))gc_sweep300},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc300))-1)}; T300*new300(void){ gc300*n; fsoc*c; if(store_left300>1){ store_left300--; n=store300++; } else if(gc_free300!=NULL){ n=gc_free300; gc_free300=n->header.next; } else if(store_left300==1){ store_left300=0; store_chunk300->header.state_type=FSO_USED_CHUNK; n=store300++; } else{ c=gc_fsoc_get1(); if(gc_free300!=NULL){ n=gc_free300; gc_free300=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk300=c; *store_chunk300=H300; store300=((gc300*)(&(store_chunk300->first_object))); store_left300=H300.count_minus_one; n=store300++; } } n->header.flag=FSOH_UNMARKED; n->object=M300; return((T300*)n); }/*--*/ void gc_mark299(T299 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark261((T261*)(e)); }}}} }/*--*/ T299 new299(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env299.store_left)){ rsoh*r=na_env299.store; na_env299.store_left-=size; if(na_env299.store_left>sizeof(rsoh)){ r->header.size=size; na_env299.store=((rsoh*)(((char*)(na_env299.store))+size)); } else { r->header.size=size+na_env299.store_left; na_env299.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T299)(r+1)); } return((T299)new_na(&na_env299,size)); }/*--*/ void gc_sweep298(fsoc*c){ gc298*o1,*o2; o1=((gc298*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free298; gc_free298=o1; } } } else{ int dead=1; gc298* old_gc_free = gc_free298; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free298; gc_free298=o1; } } if (dead){ gc_free298 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark298(T298*o){ if(((gc298*)o)->header.flag==FSOH_UNMARKED){ ((gc298*)o)->header.flag=FSOH_MARKED; /*3p*/{ T334 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r298mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark298(fsoc*c,gc298*p){ gc298*b=((gc298*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store298)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T298*o=(&(p->object)); ((gc298*)o)->header.flag=FSOH_MARKED; /*3p*/{ T334 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r298mark_native_arrays(o); } } }} } }/*--*/ fsoc H298={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark298, (void(*)(mch*))gc_sweep298},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc298))-1)}; T298*new298(void){ gc298*n; fsoc*c; if(store_left298>1){ store_left298--; n=store298++; } else if(gc_free298!=NULL){ n=gc_free298; gc_free298=n->header.next; } else if(store_left298==1){ store_left298=0; store_chunk298->header.state_type=FSO_USED_CHUNK; n=store298++; } else{ c=gc_fsoc_get1(); if(gc_free298!=NULL){ n=gc_free298; gc_free298=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk298=c; *store_chunk298=H298; store298=((gc298*)(&(store_chunk298->first_object))); store_left298=H298.count_minus_one; n=store298++; } } n->header.flag=FSOH_UNMARKED; n->object=M298; return((T298*)n); }/*--*/ void gc_sweep297(fsoc*c){ gc297*o1,*o2; o1=((gc297*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item297(&(o1->object)); } else{ o1->header.next=gc_free297; gc_free297=o1; } } } else{ int dead=1; gc297* old_gc_free = gc_free297; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item297(&(o1->object)); dead=0;} else{ o1->header.next=gc_free297; gc_free297=o1; } } if (dead){ gc_free297 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_update_weak_ref_item297(T297* wr){ gc296* obj_ptr = (gc296*)(wr->_item); if (obj_ptr != NULL){ int swept = (((void*)obj_ptr) <= ((void*)wr)); if (swept != (obj_ptr->header.flag == FSOH_UNMARKED)) /* (already swept) xor marked */ wr->_item = NULL; } }/*--*/ void gc_mark297(T297*o){ ((gc297*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark297(fsoc*c,gc297*p){ gc297*b=((gc297*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store297)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T297*o=(&(p->object)); ((gc297*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H297={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark297, (void(*)(mch*))gc_sweep297},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc297))-1)}; T297*new297(void){ gc297*n; fsoc*c; if(store_left297>1){ store_left297--; n=store297++; } else if(gc_free297!=NULL){ n=gc_free297; gc_free297=n->header.next; } else if(store_left297==1){ store_left297=0; store_chunk297->header.state_type=FSO_USED_CHUNK; n=store297++; } else{ c=gc_fsoc_get1(); if(gc_free297!=NULL){ n=gc_free297; gc_free297=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk297=c; *store_chunk297=H297; store297=((gc297*)(&(store_chunk297->first_object))); store_left297=H297.count_minus_one; n=store297++; } } n->header.flag=FSOH_UNMARKED; n->object=M297; return((T297*)n); }/*--*/ void gc_sweep296(fsoc*c){ gc296*o1,*o2; o1=((gc296*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free296; gc_free296=o1; } } } else{ int dead=1; gc296* old_gc_free = gc_free296; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free296; gc_free296=o1; } } if (dead){ gc_free296 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark296(T296*o){ begin: if(((gc296*)o)->header.flag==FSOH_UNMARKED){ ((gc296*)o)->header.flag=FSOH_MARKED; o=(void*)o->_next; if((o!=NULL))goto begin; } }/*--*/ void gc_align_mark296(fsoc*c,gc296*p){ gc296*b=((gc296*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store296)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T296*o=(&(p->object)); begin: ((gc296*)o)->header.flag=FSOH_MARKED; o=(void*)o->_next; if((o!=NULL)&&(((gc296*)o)->header.flag==FSOH_UNMARKED))goto begin; } } }/*--*/ fsoc H296={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark296, (void(*)(mch*))gc_sweep296},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc296))-1)}; T296*new296(void){ gc296*n; fsoc*c; if(store_left296>1){ store_left296--; n=store296++; } else if(gc_free296!=NULL){ n=gc_free296; gc_free296=n->header.next; } else if(store_left296==1){ store_left296=0; store_chunk296->header.state_type=FSO_USED_CHUNK; n=store296++; } else{ c=gc_fsoc_get1(); if(gc_free296!=NULL){ n=gc_free296; gc_free296=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk296=c; *store_chunk296=H296; store296=((gc296*)(&(store_chunk296->first_object))); store_left296=H296.count_minus_one; n=store296++; } } n->header.flag=FSOH_UNMARKED; n->object=M296; return((T296*)n); }/*--*/ void gc_mark295(T295 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark296((T296*)(e)); }}}} }/*--*/ T295 new295(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env295.store_left)){ rsoh*r=na_env295.store; na_env295.store_left-=size; if(na_env295.store_left>sizeof(rsoh)){ r->header.size=size; na_env295.store=((rsoh*)(((char*)(na_env295.store))+size)); } else { r->header.size=size+na_env295.store_left; na_env295.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T295)(r+1)); } return((T295)new_na(&na_env295,size)); }/*--*/ void gc_mark294(T294 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ (((rsoh*)o)-1)->header.magic_flag=RSOH_MARKED; }/*--*/ T294 new294(unsigned int size){ size=(size*sizeof(T2))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env294.store_left)){ rsoh*r=na_env294.store; na_env294.store_left-=size; if(na_env294.store_left>sizeof(rsoh)){ r->header.size=size; na_env294.store=((rsoh*)(((char*)(na_env294.store))+size)); } else { r->header.size=size+na_env294.store_left; na_env294.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T294)(r+1)); } return((T294)new_na(&na_env294,size)); }/*--*/ void gc_sweep293(fsoc*c){ gc293*o1,*o2; o1=((gc293*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item293(&(o1->object)); } else{ o1->header.next=gc_free293; gc_free293=o1; } } } else{ int dead=1; gc293* old_gc_free = gc_free293; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item293(&(o1->object)); dead=0;} else{ o1->header.next=gc_free293; gc_free293=o1; } } if (dead){ gc_free293 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_update_weak_ref_item293(T293* wr){ gc292* obj_ptr = (gc292*)(wr->_item); if (obj_ptr != NULL){ int swept = (((void*)obj_ptr) <= ((void*)wr)); if (swept != (obj_ptr->header.flag == FSOH_UNMARKED)) /* (already swept) xor marked */ wr->_item = NULL; } }/*--*/ void gc_mark293(T293*o){ ((gc293*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark293(fsoc*c,gc293*p){ gc293*b=((gc293*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store293)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T293*o=(&(p->object)); ((gc293*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H293={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark293, (void(*)(mch*))gc_sweep293},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc293))-1)}; T293*new293(void){ gc293*n; fsoc*c; if(store_left293>1){ store_left293--; n=store293++; } else if(gc_free293!=NULL){ n=gc_free293; gc_free293=n->header.next; } else if(store_left293==1){ store_left293=0; store_chunk293->header.state_type=FSO_USED_CHUNK; n=store293++; } else{ c=gc_fsoc_get1(); if(gc_free293!=NULL){ n=gc_free293; gc_free293=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk293=c; *store_chunk293=H293; store293=((gc293*)(&(store_chunk293->first_object))); store_left293=H293.count_minus_one; n=store293++; } } n->header.flag=FSOH_UNMARKED; n->object=M293; return((T293*)n); }/*--*/ void gc_sweep292(fsoc*c){ gc292*o1,*o2; o1=((gc292*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free292; gc_free292=o1; } } } else{ int dead=1; gc292* old_gc_free = gc_free292; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free292; gc_free292=o1; } } if (dead){ gc_free292 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark292(T292*o){ begin: if(((gc292*)o)->header.flag==FSOH_UNMARKED){ ((gc292*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_key)gc_mark7((T7*)(o->_key)); o=(void*)o->_next; if((o!=NULL))goto begin; } }/*--*/ void gc_align_mark292(fsoc*c,gc292*p){ gc292*b=((gc292*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store292)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T292*o=(&(p->object)); begin: ((gc292*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_key)gc_mark7((T7*)(o->_key)); o=(void*)o->_next; if((o!=NULL)&&(((gc292*)o)->header.flag==FSOH_UNMARKED))goto begin; } } }/*--*/ fsoc H292={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark292, (void(*)(mch*))gc_sweep292},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc292))-1)}; T292*new292(void){ gc292*n; fsoc*c; if(store_left292>1){ store_left292--; n=store292++; } else if(gc_free292!=NULL){ n=gc_free292; gc_free292=n->header.next; } else if(store_left292==1){ store_left292=0; store_chunk292->header.state_type=FSO_USED_CHUNK; n=store292++; } else{ c=gc_fsoc_get1(); if(gc_free292!=NULL){ n=gc_free292; gc_free292=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk292=c; *store_chunk292=H292; store292=((gc292*)(&(store_chunk292->first_object))); store_left292=H292.count_minus_one; n=store292++; } } n->header.flag=FSOH_UNMARKED; n->object=M292; return((T292*)n); }/*--*/ void gc_mark291(T291 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark292((T292*)(e)); }}}} }/*--*/ T291 new291(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env291.store_left)){ rsoh*r=na_env291.store; na_env291.store_left-=size; if(na_env291.store_left>sizeof(rsoh)){ r->header.size=size; na_env291.store=((rsoh*)(((char*)(na_env291.store))+size)); } else { r->header.size=size+na_env291.store_left; na_env291.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T291)(r+1)); } return((T291)new_na(&na_env291,size)); }/*--*/ void gc_sweep290(fsoc*c){ gc290*o1,*o2; o1=((gc290*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free290; gc_free290=o1; } } } else{ int dead=1; gc290* old_gc_free = gc_free290; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free290; gc_free290=o1; } } if (dead){ gc_free290 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark290(T290*o){ begin: if(((gc290*)o)->header.flag==FSOH_UNMARKED){ ((gc290*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_key)gc_mark7((T7*)(o->_key)); /*3p*/if(NULL!=o->_item)Xgc_mark286((T0*)(o->_item)); o=(void*)o->_next; if((o!=NULL))goto begin; } }/*--*/ void gc_align_mark290(fsoc*c,gc290*p){ gc290*b=((gc290*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store290)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T290*o=(&(p->object)); begin: ((gc290*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_key)gc_mark7((T7*)(o->_key)); /*3p*/if(NULL!=o->_item)Xgc_mark286((T0*)(o->_item)); o=(void*)o->_next; if((o!=NULL)&&(((gc290*)o)->header.flag==FSOH_UNMARKED))goto begin; } } }/*--*/ fsoc H290={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark290, (void(*)(mch*))gc_sweep290},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc290))-1)}; T290*new290(void){ gc290*n; fsoc*c; if(store_left290>1){ store_left290--; n=store290++; } else if(gc_free290!=NULL){ n=gc_free290; gc_free290=n->header.next; } else if(store_left290==1){ store_left290=0; store_chunk290->header.state_type=FSO_USED_CHUNK; n=store290++; } else{ c=gc_fsoc_get1(); if(gc_free290!=NULL){ n=gc_free290; gc_free290=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk290=c; *store_chunk290=H290; store290=((gc290*)(&(store_chunk290->first_object))); store_left290=H290.count_minus_one; n=store290++; } } n->header.flag=FSOH_UNMARKED; n->object=M290; return((T290*)n); }/*--*/ void gc_sweep289(fsoc*c){ gc289*o1,*o2; o1=((gc289*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item289(&(o1->object)); } else{ o1->header.next=gc_free289; gc_free289=o1; } } } else{ int dead=1; gc289* old_gc_free = gc_free289; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item289(&(o1->object)); dead=0;} else{ o1->header.next=gc_free289; gc_free289=o1; } } if (dead){ gc_free289 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_update_weak_ref_item289(T289* wr){ gc290* obj_ptr = (gc290*)(wr->_item); if (obj_ptr != NULL){ int swept = (((void*)obj_ptr) <= ((void*)wr)); if (swept != (obj_ptr->header.flag == FSOH_UNMARKED)) /* (already swept) xor marked */ wr->_item = NULL; } }/*--*/ void gc_mark289(T289*o){ ((gc289*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark289(fsoc*c,gc289*p){ gc289*b=((gc289*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store289)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T289*o=(&(p->object)); ((gc289*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H289={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark289, (void(*)(mch*))gc_sweep289},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc289))-1)}; T289*new289(void){ gc289*n; fsoc*c; if(store_left289>1){ store_left289--; n=store289++; } else if(gc_free289!=NULL){ n=gc_free289; gc_free289=n->header.next; } else if(store_left289==1){ store_left289=0; store_chunk289->header.state_type=FSO_USED_CHUNK; n=store289++; } else{ c=gc_fsoc_get1(); if(gc_free289!=NULL){ n=gc_free289; gc_free289=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk289=c; *store_chunk289=H289; store289=((gc289*)(&(store_chunk289->first_object))); store_left289=H289.count_minus_one; n=store289++; } } n->header.flag=FSOH_UNMARKED; n->object=M289; return((T289*)n); }/*--*/ void gc_sweep288(fsoc*c){ gc288*o1,*o2; o1=((gc288*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free288; gc_free288=o1; } } } else{ int dead=1; gc288* old_gc_free = gc_free288; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free288; gc_free288=o1; } } if (dead){ gc_free288 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark288(T288*o){ if(((gc288*)o)->header.flag==FSOH_UNMARKED){ ((gc288*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark289((T289*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark333((o->_buckets)); } }/*--*/ void gc_align_mark288(fsoc*c,gc288*p){ gc288*b=((gc288*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store288)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T288*o=(&(p->object)); ((gc288*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark289((T289*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark333((o->_buckets)); } } }/*--*/ fsoc H288={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark288, (void(*)(mch*))gc_sweep288},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc288))-1)}; T288*new288(void){ gc288*n; fsoc*c; if(store_left288>1){ store_left288--; n=store288++; } else if(gc_free288!=NULL){ n=gc_free288; gc_free288=n->header.next; } else if(store_left288==1){ store_left288=0; store_chunk288->header.state_type=FSO_USED_CHUNK; n=store288++; } else{ c=gc_fsoc_get1(); if(gc_free288!=NULL){ n=gc_free288; gc_free288=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk288=c; *store_chunk288=H288; store288=((gc288*)(&(store_chunk288->first_object))); store_left288=H288.count_minus_one; n=store288++; } } n->header.flag=FSOH_UNMARKED; n->object=M288; return((T288*)n); }/*--*/ void gc_sweep287(fsoc*c){ gc287*o1,*o2; o1=((gc287*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item287(&(o1->object)); } else{ o1->header.next=gc_free287; gc_free287=o1; } } } else{ int dead=1; gc287* old_gc_free = gc_free287; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; gc_update_weak_ref_item287(&(o1->object)); dead=0;} else{ o1->header.next=gc_free287; gc_free287=o1; } } if (dead){ gc_free287 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_update_weak_ref_item287(T287* wr){ gc284* obj_ptr = (gc284*)(wr->_item); if (obj_ptr != NULL){ int swept = (((void*)obj_ptr) <= ((void*)wr)); if (swept != (obj_ptr->header.flag == FSOH_UNMARKED)) /* (already swept) xor marked */ wr->_item = NULL; } }/*--*/ void gc_mark287(T287*o){ ((gc287*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark287(fsoc*c,gc287*p){ gc287*b=((gc287*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store287)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T287*o=(&(p->object)); ((gc287*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H287={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark287, (void(*)(mch*))gc_sweep287},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc287))-1)}; T287*new287(void){ gc287*n; fsoc*c; if(store_left287>1){ store_left287--; n=store287++; } else if(gc_free287!=NULL){ n=gc_free287; gc_free287=n->header.next; } else if(store_left287==1){ store_left287=0; store_chunk287->header.state_type=FSO_USED_CHUNK; n=store287++; } else{ c=gc_fsoc_get1(); if(gc_free287!=NULL){ n=gc_free287; gc_free287=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk287=c; *store_chunk287=H287; store287=((gc287*)(&(store_chunk287->first_object))); store_left287=H287.count_minus_one; n=store287++; } } n->header.flag=FSOH_UNMARKED; n->object=M287; return((T287*)n); }/*--*/ void gc_sweep284(fsoc*c){ gc284*o1,*o2; o1=((gc284*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free284; gc_free284=o1; } } } else{ int dead=1; gc284* old_gc_free = gc_free284; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free284; gc_free284=o1; } } if (dead){ gc_free284 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark284(T284*o){ begin: if(((gc284*)o)->header.flag==FSOH_UNMARKED){ ((gc284*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_key)gc_mark7((T7*)(o->_key)); /*3p*/if(NULL!=o->_item)gc_mark251((T251*)(o->_item)); o=(void*)o->_next; if((o!=NULL))goto begin; } }/*--*/ void gc_align_mark284(fsoc*c,gc284*p){ gc284*b=((gc284*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store284)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T284*o=(&(p->object)); begin: ((gc284*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_key)gc_mark7((T7*)(o->_key)); /*3p*/if(NULL!=o->_item)gc_mark251((T251*)(o->_item)); o=(void*)o->_next; if((o!=NULL)&&(((gc284*)o)->header.flag==FSOH_UNMARKED))goto begin; } } }/*--*/ fsoc H284={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark284, (void(*)(mch*))gc_sweep284},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc284))-1)}; T284*new284(void){ gc284*n; fsoc*c; if(store_left284>1){ store_left284--; n=store284++; } else if(gc_free284!=NULL){ n=gc_free284; gc_free284=n->header.next; } else if(store_left284==1){ store_left284=0; store_chunk284->header.state_type=FSO_USED_CHUNK; n=store284++; } else{ c=gc_fsoc_get1(); if(gc_free284!=NULL){ n=gc_free284; gc_free284=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk284=c; *store_chunk284=H284; store284=((gc284*)(&(store_chunk284->first_object))); store_left284=H284.count_minus_one; n=store284++; } } n->header.flag=FSOH_UNMARKED; n->object=M284; return((T284*)n); }/*--*/ void gc_mark283(T283 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark284((T284*)(e)); }}}} }/*--*/ T283 new283(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env283.store_left)){ rsoh*r=na_env283.store; na_env283.store_left-=size; if(na_env283.store_left>sizeof(rsoh)){ r->header.size=size; na_env283.store=((rsoh*)(((char*)(na_env283.store))+size)); } else { r->header.size=size+na_env283.store_left; na_env283.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T283)(r+1)); } return((T283)new_na(&na_env283,size)); }/*--*/ void gc_mark282(T282 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark153((T153*)(e)); }}}} }/*--*/ T282 new282(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env282.store_left)){ rsoh*r=na_env282.store; na_env282.store_left-=size; if(na_env282.store_left>sizeof(rsoh)){ r->header.size=size; na_env282.store=((rsoh*)(((char*)(na_env282.store))+size)); } else { r->header.size=size+na_env282.store_left; na_env282.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T282)(r+1)); } return((T282)new_na(&na_env282,size)); }/*--*/ void gc_mark281(T281 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark155((T155*)(e)); }}}} }/*--*/ T281 new281(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env281.store_left)){ rsoh*r=na_env281.store; na_env281.store_left-=size; if(na_env281.store_left>sizeof(rsoh)){ r->header.size=size; na_env281.store=((rsoh*)(((char*)(na_env281.store))+size)); } else { r->header.size=size+na_env281.store_left; na_env281.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T281)(r+1)); } return((T281)new_na(&na_env281,size)); }/*--*/ void gc_sweep280(fsoc*c){ gc280*o1,*o2; o1=((gc280*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free280; gc_free280=o1; } } } else{ int dead=1; gc280* old_gc_free = gc_free280; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free280; gc_free280=o1; } } if (dead){ gc_free280 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark280(T280*o){ if(((gc280*)o)->header.flag==FSOH_UNMARKED){ ((gc280*)o)->header.flag=FSOH_MARKED; /*3p*/{ T332 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r280mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark280(fsoc*c,gc280*p){ gc280*b=((gc280*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store280)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T280*o=(&(p->object)); ((gc280*)o)->header.flag=FSOH_MARKED; /*3p*/{ T332 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r280mark_native_arrays(o); } } }} } }/*--*/ fsoc H280={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark280, (void(*)(mch*))gc_sweep280},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc280))-1)}; T280*new280(void){ gc280*n; fsoc*c; if(store_left280>1){ store_left280--; n=store280++; } else if(gc_free280!=NULL){ n=gc_free280; gc_free280=n->header.next; } else if(store_left280==1){ store_left280=0; store_chunk280->header.state_type=FSO_USED_CHUNK; n=store280++; } else{ c=gc_fsoc_get1(); if(gc_free280!=NULL){ n=gc_free280; gc_free280=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk280=c; *store_chunk280=H280; store280=((gc280*)(&(store_chunk280->first_object))); store_left280=H280.count_minus_one; n=store280++; } } n->header.flag=FSOH_UNMARKED; n->object=M280; return((T280*)n); }/*--*/ void gc_sweep154(fsoc*c){ gc154*o1,*o2; o1=((gc154*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free154; gc_free154=o1; } } } else{ int dead=1; gc154* old_gc_free = gc_free154; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free154; gc_free154=o1; } } if (dead){ gc_free154 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark154(T154*o){ ((gc154*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark154(fsoc*c,gc154*p){ gc154*b=((gc154*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store154)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T154*o=(&(p->object)); ((gc154*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H154={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark154, (void(*)(mch*))gc_sweep154},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc154))-1)}; T154*new154(void){ gc154*n; fsoc*c; if(store_left154>1){ store_left154--; n=store154++; } else if(gc_free154!=NULL){ n=gc_free154; gc_free154=n->header.next; } else if(store_left154==1){ store_left154=0; store_chunk154->header.state_type=FSO_USED_CHUNK; n=store154++; } else{ c=gc_fsoc_get1(); if(gc_free154!=NULL){ n=gc_free154; gc_free154=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk154=c; *store_chunk154=H154; store154=((gc154*)(&(store_chunk154->first_object))); store_left154=H154.count_minus_one; n=store154++; } } n->header.flag=FSOH_UNMARKED; n->object=M154; return((T154*)n); }/*--*/ void gc_sweep279(fsoc*c){ gc279*o1,*o2; o1=((gc279*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free279; gc_free279=o1; } } } else{ int dead=1; gc279* old_gc_free = gc_free279; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free279; gc_free279=o1; } } if (dead){ gc_free279 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark279(T279*o){ if(((gc279*)o)->header.flag==FSOH_UNMARKED){ ((gc279*)o)->header.flag=FSOH_MARKED; /*3p*/{ T331 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r279mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark279(fsoc*c,gc279*p){ gc279*b=((gc279*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store279)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T279*o=(&(p->object)); ((gc279*)o)->header.flag=FSOH_MARKED; /*3p*/{ T331 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r279mark_native_arrays(o); } } }} } }/*--*/ fsoc H279={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark279, (void(*)(mch*))gc_sweep279},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc279))-1)}; T279*new279(void){ gc279*n; fsoc*c; if(store_left279>1){ store_left279--; n=store279++; } else if(gc_free279!=NULL){ n=gc_free279; gc_free279=n->header.next; } else if(store_left279==1){ store_left279=0; store_chunk279->header.state_type=FSO_USED_CHUNK; n=store279++; } else{ c=gc_fsoc_get1(); if(gc_free279!=NULL){ n=gc_free279; gc_free279=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk279=c; *store_chunk279=H279; store279=((gc279*)(&(store_chunk279->first_object))); store_left279=H279.count_minus_one; n=store279++; } } n->header.flag=FSOH_UNMARKED; n->object=M279; return((T279*)n); }/*--*/ void gc_sweep160(fsoc*c){ gc160*o1,*o2; o1=((gc160*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free160; gc_free160=o1; } } } else{ int dead=1; gc160* old_gc_free = gc_free160; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free160; gc_free160=o1; } } if (dead){ gc_free160 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark160(T160*o){ if(((gc160*)o)->header.flag==FSOH_UNMARKED){ ((gc160*)o)->header.flag=FSOH_MARKED; /*p*/if(NULL!=o->_container)gc_mark73((T73*)(o->_container)); } }/*--*/ void gc_align_mark160(fsoc*c,gc160*p){ gc160*b=((gc160*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store160)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T160*o=(&(p->object)); ((gc160*)o)->header.flag=FSOH_MARKED; /*p*/if(NULL!=o->_container)gc_mark73((T73*)(o->_container)); } } }/*--*/ fsoc H160={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark160, (void(*)(mch*))gc_sweep160},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc160))-1)}; T160*new160(void){ gc160*n; fsoc*c; if(store_left160>1){ store_left160--; n=store160++; } else if(gc_free160!=NULL){ n=gc_free160; gc_free160=n->header.next; } else if(store_left160==1){ store_left160=0; store_chunk160->header.state_type=FSO_USED_CHUNK; n=store160++; } else{ c=gc_fsoc_get1(); if(gc_free160!=NULL){ n=gc_free160; gc_free160=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk160=c; *store_chunk160=H160; store160=((gc160*)(&(store_chunk160->first_object))); store_left160=H160.count_minus_one; n=store160++; } } n->header.flag=FSOH_UNMARKED; n->object=M160; return((T160*)n); }/*--*/ void gc_sweep277(fsoc*c){ gc277*o1,*o2; o1=((gc277*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free277; gc_free277=o1; } } } else{ int dead=1; gc277* old_gc_free = gc_free277; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free277; gc_free277=o1; } } if (dead){ gc_free277 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark277(T277*o){ if(((gc277*)o)->header.flag==FSOH_UNMARKED){ ((gc277*)o)->header.flag=FSOH_MARKED; /*3p*/{ T330 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r277mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark277(fsoc*c,gc277*p){ gc277*b=((gc277*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store277)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T277*o=(&(p->object)); ((gc277*)o)->header.flag=FSOH_MARKED; /*3p*/{ T330 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r277mark_native_arrays(o); } } }} } }/*--*/ fsoc H277={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark277, (void(*)(mch*))gc_sweep277},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc277))-1)}; T277*new277(void){ gc277*n; fsoc*c; if(store_left277>1){ store_left277--; n=store277++; } else if(gc_free277!=NULL){ n=gc_free277; gc_free277=n->header.next; } else if(store_left277==1){ store_left277=0; store_chunk277->header.state_type=FSO_USED_CHUNK; n=store277++; } else{ c=gc_fsoc_get1(); if(gc_free277!=NULL){ n=gc_free277; gc_free277=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk277=c; *store_chunk277=H277; store277=((gc277*)(&(store_chunk277->first_object))); store_left277=H277.count_minus_one; n=store277++; } } n->header.flag=FSOH_UNMARKED; n->object=M277; return((T277*)n); }/*--*/ void gc_sweep276(fsoc*c){ gc276*o1,*o2; o1=((gc276*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free276; gc_free276=o1; } } } else{ int dead=1; gc276* old_gc_free = gc_free276; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free276; gc_free276=o1; } } if (dead){ gc_free276 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark276(T276*o){ if(((gc276*)o)->header.flag==FSOH_UNMARKED){ ((gc276*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark329((T329*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark328((o->_buckets)); } }/*--*/ void gc_align_mark276(fsoc*c,gc276*p){ gc276*b=((gc276*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store276)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T276*o=(&(p->object)); ((gc276*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark329((T329*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark328((o->_buckets)); } } }/*--*/ fsoc H276={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark276, (void(*)(mch*))gc_sweep276},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc276))-1)}; T276*new276(void){ gc276*n; fsoc*c; if(store_left276>1){ store_left276--; n=store276++; } else if(gc_free276!=NULL){ n=gc_free276; gc_free276=n->header.next; } else if(store_left276==1){ store_left276=0; store_chunk276->header.state_type=FSO_USED_CHUNK; n=store276++; } else{ c=gc_fsoc_get1(); if(gc_free276!=NULL){ n=gc_free276; gc_free276=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk276=c; *store_chunk276=H276; store276=((gc276*)(&(store_chunk276->first_object))); store_left276=H276.count_minus_one; n=store276++; } } n->header.flag=FSOH_UNMARKED; n->object=M276; return((T276*)n); }/*--*/ void gc_sweep275(fsoc*c){ gc275*o1,*o2; o1=((gc275*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free275; gc_free275=o1; } } } else{ int dead=1; gc275* old_gc_free = gc_free275; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free275; gc_free275=o1; } } if (dead){ gc_free275 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark275(T275*o){ if(((gc275*)o)->header.flag==FSOH_UNMARKED){ ((gc275*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark326((T326*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark324((o->_buckets)); } }/*--*/ void gc_align_mark275(fsoc*c,gc275*p){ gc275*b=((gc275*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store275)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T275*o=(&(p->object)); ((gc275*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark326((T326*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark324((o->_buckets)); } } }/*--*/ fsoc H275={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark275, (void(*)(mch*))gc_sweep275},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc275))-1)}; T275*new275(void){ gc275*n; fsoc*c; if(store_left275>1){ store_left275--; n=store275++; } else if(gc_free275!=NULL){ n=gc_free275; gc_free275=n->header.next; } else if(store_left275==1){ store_left275=0; store_chunk275->header.state_type=FSO_USED_CHUNK; n=store275++; } else{ c=gc_fsoc_get1(); if(gc_free275!=NULL){ n=gc_free275; gc_free275=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk275=c; *store_chunk275=H275; store275=((gc275*)(&(store_chunk275->first_object))); store_left275=H275.count_minus_one; n=store275++; } } n->header.flag=FSOH_UNMARKED; n->object=M275; return((T275*)n); }/*--*/ void gc_sweep273(fsoc*c){ gc273*o1,*o2; o1=((gc273*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free273; gc_free273=o1; } } } else{ int dead=1; gc273* old_gc_free = gc_free273; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free273; gc_free273=o1; } } if (dead){ gc_free273 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark273(T273*o){ if(((gc273*)o)->header.flag==FSOH_UNMARKED){ ((gc273*)o)->header.flag=FSOH_MARKED; /*3p*/{ T321 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r273mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark273(fsoc*c,gc273*p){ gc273*b=((gc273*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store273)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T273*o=(&(p->object)); ((gc273*)o)->header.flag=FSOH_MARKED; /*3p*/{ T321 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r273mark_native_arrays(o); } } }} } }/*--*/ fsoc H273={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark273, (void(*)(mch*))gc_sweep273},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc273))-1)}; T273*new273(void){ gc273*n; fsoc*c; if(store_left273>1){ store_left273--; n=store273++; } else if(gc_free273!=NULL){ n=gc_free273; gc_free273=n->header.next; } else if(store_left273==1){ store_left273=0; store_chunk273->header.state_type=FSO_USED_CHUNK; n=store273++; } else{ c=gc_fsoc_get1(); if(gc_free273!=NULL){ n=gc_free273; gc_free273=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk273=c; *store_chunk273=H273; store273=((gc273*)(&(store_chunk273->first_object))); store_left273=H273.count_minus_one; n=store273++; } } n->header.flag=FSOH_UNMARKED; n->object=M273; return((T273*)n); }/*--*/ void gc_sweep271(fsoc*c){ gc271*o1,*o2; o1=((gc271*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free271; gc_free271=o1; } } } else{ int dead=1; gc271* old_gc_free = gc_free271; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free271; gc_free271=o1; } } if (dead){ gc_free271 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark271(T271*o){ if(((gc271*)o)->header.flag==FSOH_UNMARKED){ ((gc271*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark317((T317*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark316((o->_buckets)); } }/*--*/ void gc_align_mark271(fsoc*c,gc271*p){ gc271*b=((gc271*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store271)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T271*o=(&(p->object)); ((gc271*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark317((T317*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark316((o->_buckets)); } } }/*--*/ fsoc H271={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark271, (void(*)(mch*))gc_sweep271},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc271))-1)}; T271*new271(void){ gc271*n; fsoc*c; if(store_left271>1){ store_left271--; n=store271++; } else if(gc_free271!=NULL){ n=gc_free271; gc_free271=n->header.next; } else if(store_left271==1){ store_left271=0; store_chunk271->header.state_type=FSO_USED_CHUNK; n=store271++; } else{ c=gc_fsoc_get1(); if(gc_free271!=NULL){ n=gc_free271; gc_free271=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk271=c; *store_chunk271=H271; store271=((gc271*)(&(store_chunk271->first_object))); store_left271=H271.count_minus_one; n=store271++; } } n->header.flag=FSOH_UNMARKED; n->object=M271; return((T271*)n); }/*--*/ void gc_sweep269(fsoc*c){ gc269*o1,*o2; o1=((gc269*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free269; gc_free269=o1; } } } else{ int dead=1; gc269* old_gc_free = gc_free269; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free269; gc_free269=o1; } } if (dead){ gc_free269 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark269(T269*o){ if(((gc269*)o)->header.flag==FSOH_UNMARKED){ ((gc269*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark311((T311*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark310((o->_buckets)); } }/*--*/ void gc_align_mark269(fsoc*c,gc269*p){ gc269*b=((gc269*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store269)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T269*o=(&(p->object)); ((gc269*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark311((T311*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark310((o->_buckets)); } } }/*--*/ fsoc H269={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark269, (void(*)(mch*))gc_sweep269},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc269))-1)}; T269*new269(void){ gc269*n; fsoc*c; if(store_left269>1){ store_left269--; n=store269++; } else if(gc_free269!=NULL){ n=gc_free269; gc_free269=n->header.next; } else if(store_left269==1){ store_left269=0; store_chunk269->header.state_type=FSO_USED_CHUNK; n=store269++; } else{ c=gc_fsoc_get1(); if(gc_free269!=NULL){ n=gc_free269; gc_free269=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk269=c; *store_chunk269=H269; store269=((gc269*)(&(store_chunk269->first_object))); store_left269=H269.count_minus_one; n=store269++; } } n->header.flag=FSOH_UNMARKED; n->object=M269; return((T269*)n); }/*--*/ void gc_sweep268(fsoc*c){ gc268*o1,*o2; o1=((gc268*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free268; gc_free268=o1; } } } else{ int dead=1; gc268* old_gc_free = gc_free268; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free268; gc_free268=o1; } } if (dead){ gc_free268 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark268(T268*o){ if(((gc268*)o)->header.flag==FSOH_UNMARKED){ ((gc268*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark308((T308*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark306((o->_buckets)); } }/*--*/ void gc_align_mark268(fsoc*c,gc268*p){ gc268*b=((gc268*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store268)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T268*o=(&(p->object)); ((gc268*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark308((T308*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark306((o->_buckets)); } } }/*--*/ fsoc H268={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark268, (void(*)(mch*))gc_sweep268},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc268))-1)}; T268*new268(void){ gc268*n; fsoc*c; if(store_left268>1){ store_left268--; n=store268++; } else if(gc_free268!=NULL){ n=gc_free268; gc_free268=n->header.next; } else if(store_left268==1){ store_left268=0; store_chunk268->header.state_type=FSO_USED_CHUNK; n=store268++; } else{ c=gc_fsoc_get1(); if(gc_free268!=NULL){ n=gc_free268; gc_free268=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk268=c; *store_chunk268=H268; store268=((gc268*)(&(store_chunk268->first_object))); store_left268=H268.count_minus_one; n=store268++; } } n->header.flag=FSOH_UNMARKED; n->object=M268; return((T268*)n); }/*--*/ void gc_sweep146(fsoc*c){ gc146*o1,*o2; o1=((gc146*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free146; gc_free146=o1; } } } else{ int dead=1; gc146* old_gc_free = gc_free146; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free146; gc_free146=o1; } } if (dead){ gc_free146 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark146(T146*o){ ((gc146*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark146(fsoc*c,gc146*p){ gc146*b=((gc146*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store146)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T146*o=(&(p->object)); ((gc146*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H146={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark146, (void(*)(mch*))gc_sweep146},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc146))-1)}; T146*new146(void){ gc146*n; fsoc*c; if(store_left146>1){ store_left146--; n=store146++; } else if(gc_free146!=NULL){ n=gc_free146; gc_free146=n->header.next; } else if(store_left146==1){ store_left146=0; store_chunk146->header.state_type=FSO_USED_CHUNK; n=store146++; } else{ c=gc_fsoc_get1(); if(gc_free146!=NULL){ n=gc_free146; gc_free146=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk146=c; *store_chunk146=H146; store146=((gc146*)(&(store_chunk146->first_object))); store_left146=H146.count_minus_one; n=store146++; } } n->header.flag=FSOH_UNMARKED; n->object=M146; return((T146*)n); }/*--*/ void gc_sweep267(fsoc*c){ gc267*o1,*o2; o1=((gc267*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free267; gc_free267=o1; } } } else{ int dead=1; gc267* old_gc_free = gc_free267; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free267; gc_free267=o1; } } if (dead){ gc_free267 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark267(T267*o){ if(((gc267*)o)->header.flag==FSOH_UNMARKED){ ((gc267*)o)->header.flag=FSOH_MARKED; /*3p*/{ T305 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r267mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark267(fsoc*c,gc267*p){ gc267*b=((gc267*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store267)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T267*o=(&(p->object)); ((gc267*)o)->header.flag=FSOH_MARKED; /*3p*/{ T305 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r267mark_native_arrays(o); } } }} } }/*--*/ fsoc H267={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark267, (void(*)(mch*))gc_sweep267},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc267))-1)}; T267*new267(void){ gc267*n; fsoc*c; if(store_left267>1){ store_left267--; n=store267++; } else if(gc_free267!=NULL){ n=gc_free267; gc_free267=n->header.next; } else if(store_left267==1){ store_left267=0; store_chunk267->header.state_type=FSO_USED_CHUNK; n=store267++; } else{ c=gc_fsoc_get1(); if(gc_free267!=NULL){ n=gc_free267; gc_free267=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk267=c; *store_chunk267=H267; store267=((gc267*)(&(store_chunk267->first_object))); store_left267=H267.count_minus_one; n=store267++; } } n->header.flag=FSOH_UNMARKED; n->object=M267; return((T267*)n); }/*--*/ void gc_sweep149(fsoc*c){ gc149*o1,*o2; o1=((gc149*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free149; gc_free149=o1; } } } else{ int dead=1; gc149* old_gc_free = gc_free149; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free149; gc_free149=o1; } } if (dead){ gc_free149 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark149(T149*o){ ((gc149*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark149(fsoc*c,gc149*p){ gc149*b=((gc149*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store149)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T149*o=(&(p->object)); ((gc149*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H149={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark149, (void(*)(mch*))gc_sweep149},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc149))-1)}; T149*new149(void){ gc149*n; fsoc*c; if(store_left149>1){ store_left149--; n=store149++; } else if(gc_free149!=NULL){ n=gc_free149; gc_free149=n->header.next; } else if(store_left149==1){ store_left149=0; store_chunk149->header.state_type=FSO_USED_CHUNK; n=store149++; } else{ c=gc_fsoc_get1(); if(gc_free149!=NULL){ n=gc_free149; gc_free149=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk149=c; *store_chunk149=H149; store149=((gc149*)(&(store_chunk149->first_object))); store_left149=H149.count_minus_one; n=store149++; } } n->header.flag=FSOH_UNMARKED; n->object=M149; return((T149*)n); }/*--*/ void gc_sweep266(fsoc*c){ gc266*o1,*o2; o1=((gc266*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free266; gc_free266=o1; } } } else{ int dead=1; gc266* old_gc_free = gc_free266; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free266; gc_free266=o1; } } if (dead){ gc_free266 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark266(T266*o){ if(((gc266*)o)->header.flag==FSOH_UNMARKED){ ((gc266*)o)->header.flag=FSOH_MARKED; /*3p*/{ T304 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r266mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark266(fsoc*c,gc266*p){ gc266*b=((gc266*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store266)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T266*o=(&(p->object)); ((gc266*)o)->header.flag=FSOH_MARKED; /*3p*/{ T304 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r266mark_native_arrays(o); } } }} } }/*--*/ fsoc H266={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark266, (void(*)(mch*))gc_sweep266},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc266))-1)}; T266*new266(void){ gc266*n; fsoc*c; if(store_left266>1){ store_left266--; n=store266++; } else if(gc_free266!=NULL){ n=gc_free266; gc_free266=n->header.next; } else if(store_left266==1){ store_left266=0; store_chunk266->header.state_type=FSO_USED_CHUNK; n=store266++; } else{ c=gc_fsoc_get1(); if(gc_free266!=NULL){ n=gc_free266; gc_free266=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk266=c; *store_chunk266=H266; store266=((gc266*)(&(store_chunk266->first_object))); store_left266=H266.count_minus_one; n=store266++; } } n->header.flag=FSOH_UNMARKED; n->object=M266; return((T266*)n); }/*--*/ void gc_sweep148(fsoc*c){ gc148*o1,*o2; o1=((gc148*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free148; gc_free148=o1; } } } else{ int dead=1; gc148* old_gc_free = gc_free148; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free148; gc_free148=o1; } } if (dead){ gc_free148 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark148(T148*o){ if(((gc148*)o)->header.flag==FSOH_UNMARKED){ ((gc148*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_resolutions)gc_mark259((T259*)(o->_resolutions)); /*5p*/if(NULL!=o->_maximums)gc_mark259((T259*)(o->_maximums)); /*5p*/if(NULL!=o->_minimums)gc_mark259((T259*)(o->_minimums)); } }/*--*/ void gc_align_mark148(fsoc*c,gc148*p){ gc148*b=((gc148*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store148)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T148*o=(&(p->object)); ((gc148*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_resolutions)gc_mark259((T259*)(o->_resolutions)); /*5p*/if(NULL!=o->_maximums)gc_mark259((T259*)(o->_maximums)); /*5p*/if(NULL!=o->_minimums)gc_mark259((T259*)(o->_minimums)); } } }/*--*/ fsoc H148={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark148, (void(*)(mch*))gc_sweep148},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc148))-1)}; T148*new148(void){ gc148*n; fsoc*c; if(store_left148>1){ store_left148--; n=store148++; } else if(gc_free148!=NULL){ n=gc_free148; gc_free148=n->header.next; } else if(store_left148==1){ store_left148=0; store_chunk148->header.state_type=FSO_USED_CHUNK; n=store148++; } else{ c=gc_fsoc_get1(); if(gc_free148!=NULL){ n=gc_free148; gc_free148=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk148=c; *store_chunk148=H148; store148=((gc148*)(&(store_chunk148->first_object))); store_left148=H148.count_minus_one; n=store148++; } } n->header.flag=FSOH_UNMARKED; n->object=M148; return((T148*)n); }/*--*/ void gc_sweep265(fsoc*c){ gc265*o1,*o2; o1=((gc265*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free265; gc_free265=o1; } } } else{ int dead=1; gc265* old_gc_free = gc_free265; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free265; gc_free265=o1; } } if (dead){ gc_free265 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark265(T265*o){ if(((gc265*)o)->header.flag==FSOH_UNMARKED){ ((gc265*)o)->header.flag=FSOH_MARKED; /*3p*/{ T303 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r265mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark265(fsoc*c,gc265*p){ gc265*b=((gc265*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store265)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T265*o=(&(p->object)); ((gc265*)o)->header.flag=FSOH_MARKED; /*3p*/{ T303 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r265mark_native_arrays(o); } } }} } }/*--*/ fsoc H265={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark265, (void(*)(mch*))gc_sweep265},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc265))-1)}; T265*new265(void){ gc265*n; fsoc*c; if(store_left265>1){ store_left265--; n=store265++; } else if(gc_free265!=NULL){ n=gc_free265; gc_free265=n->header.next; } else if(store_left265==1){ store_left265=0; store_chunk265->header.state_type=FSO_USED_CHUNK; n=store265++; } else{ c=gc_fsoc_get1(); if(gc_free265!=NULL){ n=gc_free265; gc_free265=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk265=c; *store_chunk265=H265; store265=((gc265*)(&(store_chunk265->first_object))); store_left265=H265.count_minus_one; n=store265++; } } n->header.flag=FSOH_UNMARKED; n->object=M265; return((T265*)n); }/*--*/ void gc_mark264(T264 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark68((T68*)(e)); }}}} }/*--*/ T264 new264(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env264.store_left)){ rsoh*r=na_env264.store; na_env264.store_left-=size; if(na_env264.store_left>sizeof(rsoh)){ r->header.size=size; na_env264.store=((rsoh*)(((char*)(na_env264.store))+size)); } else { r->header.size=size+na_env264.store_left; na_env264.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T264)(r+1)); } return((T264)new_na(&na_env264,size)); }/*--*/ void gc_sweep263(fsoc*c){ gc263*o1,*o2; o1=((gc263*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free263; gc_free263=o1; } } } else{ int dead=1; gc263* old_gc_free = gc_free263; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free263; gc_free263=o1; } } if (dead){ gc_free263 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark263(T263*o){ if(((gc263*)o)->header.flag==FSOH_UNMARKED){ ((gc263*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark302((T302*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark301((o->_buckets)); } }/*--*/ void gc_align_mark263(fsoc*c,gc263*p){ gc263*b=((gc263*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store263)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T263*o=(&(p->object)); ((gc263*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark302((T302*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark301((o->_buckets)); } } }/*--*/ fsoc H263={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark263, (void(*)(mch*))gc_sweep263},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc263))-1)}; T263*new263(void){ gc263*n; fsoc*c; if(store_left263>1){ store_left263--; n=store263++; } else if(gc_free263!=NULL){ n=gc_free263; gc_free263=n->header.next; } else if(store_left263==1){ store_left263=0; store_chunk263->header.state_type=FSO_USED_CHUNK; n=store263++; } else{ c=gc_fsoc_get1(); if(gc_free263!=NULL){ n=gc_free263; gc_free263=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk263=c; *store_chunk263=H263; store263=((gc263*)(&(store_chunk263->first_object))); store_left263=H263.count_minus_one; n=store263++; } } n->header.flag=FSOH_UNMARKED; n->object=M263; return((T263*)n); }/*--*/ void gc_sweep262(fsoc*c){ gc262*o1,*o2; o1=((gc262*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free262; gc_free262=o1; } } } else{ int dead=1; gc262* old_gc_free = gc_free262; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free262; gc_free262=o1; } } if (dead){ gc_free262 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark262(T262*o){ if(((gc262*)o)->header.flag==FSOH_UNMARKED){ ((gc262*)o)->header.flag=FSOH_MARKED; /*3p*/{ T299 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r262mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark262(fsoc*c,gc262*p){ gc262*b=((gc262*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store262)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T262*o=(&(p->object)); ((gc262*)o)->header.flag=FSOH_MARKED; /*3p*/{ T299 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r262mark_native_arrays(o); } } }} } }/*--*/ fsoc H262={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark262, (void(*)(mch*))gc_sweep262},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc262))-1)}; T262*new262(void){ gc262*n; fsoc*c; if(store_left262>1){ store_left262--; n=store262++; } else if(gc_free262!=NULL){ n=gc_free262; gc_free262=n->header.next; } else if(store_left262==1){ store_left262=0; store_chunk262->header.state_type=FSO_USED_CHUNK; n=store262++; } else{ c=gc_fsoc_get1(); if(gc_free262!=NULL){ n=gc_free262; gc_free262=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk262=c; *store_chunk262=H262; store262=((gc262*)(&(store_chunk262->first_object))); store_left262=H262.count_minus_one; n=store262++; } } n->header.flag=FSOH_UNMARKED; n->object=M262; return((T262*)n); }/*--*/ void gc_sweep261(fsoc*c){ gc261*o1,*o2; o1=((gc261*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free261; gc_free261=o1; } } } else{ int dead=1; gc261* old_gc_free = gc_free261; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free261; gc_free261=o1; } } if (dead){ gc_free261 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark261(T261*o){ if(((gc261*)o)->header.flag==FSOH_UNMARKED){ ((gc261*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_callbacks)gc_mark298((T298*)(o->_callbacks)); } }/*--*/ void gc_align_mark261(fsoc*c,gc261*p){ gc261*b=((gc261*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store261)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T261*o=(&(p->object)); ((gc261*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_callbacks)gc_mark298((T298*)(o->_callbacks)); } } }/*--*/ fsoc H261={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark261, (void(*)(mch*))gc_sweep261},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc261))-1)}; T261*new261(void){ gc261*n; fsoc*c; if(store_left261>1){ store_left261--; n=store261++; } else if(gc_free261!=NULL){ n=gc_free261; gc_free261=n->header.next; } else if(store_left261==1){ store_left261=0; store_chunk261->header.state_type=FSO_USED_CHUNK; n=store261++; } else{ c=gc_fsoc_get1(); if(gc_free261!=NULL){ n=gc_free261; gc_free261=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk261=c; *store_chunk261=H261; store261=((gc261*)(&(store_chunk261->first_object))); store_left261=H261.count_minus_one; n=store261++; } } n->header.flag=FSOH_UNMARKED; n->object=M261; return((T261*)n); }/*--*/ void gc_sweep260(fsoc*c){ gc260*o1,*o2; o1=((gc260*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free260; gc_free260=o1; } } } else{ int dead=1; gc260* old_gc_free = gc_free260; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free260; gc_free260=o1; } } if (dead){ gc_free260 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark260(T260*o){ if(((gc260*)o)->header.flag==FSOH_UNMARKED){ ((gc260*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark297((T297*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark295((o->_buckets)); } }/*--*/ void gc_align_mark260(fsoc*c,gc260*p){ gc260*b=((gc260*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store260)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T260*o=(&(p->object)); ((gc260*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark297((T297*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark295((o->_buckets)); } } }/*--*/ fsoc H260={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark260, (void(*)(mch*))gc_sweep260},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc260))-1)}; T260*new260(void){ gc260*n; fsoc*c; if(store_left260>1){ store_left260--; n=store260++; } else if(gc_free260!=NULL){ n=gc_free260; gc_free260=n->header.next; } else if(store_left260==1){ store_left260=0; store_chunk260->header.state_type=FSO_USED_CHUNK; n=store260++; } else{ c=gc_fsoc_get1(); if(gc_free260!=NULL){ n=gc_free260; gc_free260=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk260=c; *store_chunk260=H260; store260=((gc260*)(&(store_chunk260->first_object))); store_left260=H260.count_minus_one; n=store260++; } } n->header.flag=FSOH_UNMARKED; n->object=M260; return((T260*)n); }/*--*/ void gc_sweep259(fsoc*c){ gc259*o1,*o2; o1=((gc259*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free259; gc_free259=o1; } } } else{ int dead=1; gc259* old_gc_free = gc_free259; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free259; gc_free259=o1; } } if (dead){ gc_free259 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark259(T259*o){ if(((gc259*)o)->header.flag==FSOH_UNMARKED){ ((gc259*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_storage)gc_mark294((o->_storage)); } }/*--*/ void gc_align_mark259(fsoc*c,gc259*p){ gc259*b=((gc259*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store259)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T259*o=(&(p->object)); ((gc259*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_storage)gc_mark294((o->_storage)); } } }/*--*/ fsoc H259={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark259, (void(*)(mch*))gc_sweep259},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc259))-1)}; T259*new259(void){ gc259*n; fsoc*c; if(store_left259>1){ store_left259--; n=store259++; } else if(gc_free259!=NULL){ n=gc_free259; gc_free259=n->header.next; } else if(store_left259==1){ store_left259=0; store_chunk259->header.state_type=FSO_USED_CHUNK; n=store259++; } else{ c=gc_fsoc_get1(); if(gc_free259!=NULL){ n=gc_free259; gc_free259=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk259=c; *store_chunk259=H259; store259=((gc259*)(&(store_chunk259->first_object))); store_left259=H259.count_minus_one; n=store259++; } } n->header.flag=FSOH_UNMARKED; n->object=M259; return((T259*)n); }/*--*/ void gc_sweep257(fsoc*c){ gc257*o1,*o2; o1=((gc257*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free257; gc_free257=o1; } } } else{ int dead=1; gc257* old_gc_free = gc_free257; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free257; gc_free257=o1; } } if (dead){ gc_free257 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark257(T257*o){ if(((gc257*)o)->header.flag==FSOH_UNMARKED){ ((gc257*)o)->header.flag=FSOH_MARKED; /*4p*/{ T255 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r257mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark257(fsoc*c,gc257*p){ gc257*b=((gc257*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store257)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T257*o=(&(p->object)); ((gc257*)o)->header.flag=FSOH_MARKED; /*4p*/{ T255 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r257mark_native_arrays(o); } } }} } }/*--*/ fsoc H257={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark257, (void(*)(mch*))gc_sweep257},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc257))-1)}; T257*new257(void){ gc257*n; fsoc*c; if(store_left257>1){ store_left257--; n=store257++; } else if(gc_free257!=NULL){ n=gc_free257; gc_free257=n->header.next; } else if(store_left257==1){ store_left257=0; store_chunk257->header.state_type=FSO_USED_CHUNK; n=store257++; } else{ c=gc_fsoc_get1(); if(gc_free257!=NULL){ n=gc_free257; gc_free257=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk257=c; *store_chunk257=H257; store257=((gc257*)(&(store_chunk257->first_object))); store_left257=H257.count_minus_one; n=store257++; } } n->header.flag=FSOH_UNMARKED; n->object=M257; return((T257*)n); }/*--*/ void gc_sweep256(fsoc*c){ gc256*o1,*o2; o1=((gc256*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free256; gc_free256=o1; } } } else{ int dead=1; gc256* old_gc_free = gc_free256; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free256; gc_free256=o1; } } if (dead){ gc_free256 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark256(T256*o){ if(((gc256*)o)->header.flag==FSOH_UNMARKED){ ((gc256*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_storage)gc_mark294((o->_storage)); } }/*--*/ void gc_align_mark256(fsoc*c,gc256*p){ gc256*b=((gc256*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store256)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T256*o=(&(p->object)); ((gc256*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_storage)gc_mark294((o->_storage)); } } }/*--*/ fsoc H256={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark256, (void(*)(mch*))gc_sweep256},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc256))-1)}; T256*new256(void){ gc256*n; fsoc*c; if(store_left256>1){ store_left256--; n=store256++; } else if(gc_free256!=NULL){ n=gc_free256; gc_free256=n->header.next; } else if(store_left256==1){ store_left256=0; store_chunk256->header.state_type=FSO_USED_CHUNK; n=store256++; } else{ c=gc_fsoc_get1(); if(gc_free256!=NULL){ n=gc_free256; gc_free256=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk256=c; *store_chunk256=H256; store256=((gc256*)(&(store_chunk256->first_object))); store_left256=H256.count_minus_one; n=store256++; } } n->header.flag=FSOH_UNMARKED; n->object=M256; return((T256*)n); }/*--*/ void gc_mark255(T255 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ {rsoh*h=((rsoh*)o)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; {T0* e; T0**p=((void*)(o+((((h->header.size)-sizeof(rsoh))/sizeof(e))-1))); for(;((void*)p)>=((void*)o);p--){ e=*p; if(NULL!=e)gc_mark7((T7*)(e)); }}}} }/*--*/ T255 new255(unsigned int size){ size=(size*sizeof(T0*))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env255.store_left)){ rsoh*r=na_env255.store; na_env255.store_left-=size; if(na_env255.store_left>sizeof(rsoh)){ r->header.size=size; na_env255.store=((rsoh*)(((char*)(na_env255.store))+size)); } else { r->header.size=size+na_env255.store_left; na_env255.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T255)(r+1)); } return((T255)new_na(&na_env255,size)); }/*--*/ void gc_mark254(T254 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ (((rsoh*)o)-1)->header.magic_flag=RSOH_MARKED; }/*--*/ T254 new254(unsigned int size){ size=(size*sizeof(T8))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env254.store_left)){ rsoh*r=na_env254.store; na_env254.store_left-=size; if(na_env254.store_left>sizeof(rsoh)){ r->header.size=size; na_env254.store=((rsoh*)(((char*)(na_env254.store))+size)); } else { r->header.size=size+na_env254.store_left; na_env254.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T254)(r+1)); } return((T254)new_na(&na_env254,size)); }/*--*/ void gc_sweep253(fsoc*c){ gc253*o1,*o2; o1=((gc253*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free253; gc_free253=o1; } } } else{ int dead=1; gc253* old_gc_free = gc_free253; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free253; gc_free253=o1; } } if (dead){ gc_free253 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark253(T253*o){ if(((gc253*)o)->header.flag==FSOH_UNMARKED){ ((gc253*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark293((T293*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark291((o->_buckets)); } }/*--*/ void gc_align_mark253(fsoc*c,gc253*p){ gc253*b=((gc253*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store253)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T253*o=(&(p->object)); ((gc253*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark293((T293*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark291((o->_buckets)); } } }/*--*/ fsoc H253={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark253, (void(*)(mch*))gc_sweep253},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc253))-1)}; T253*new253(void){ gc253*n; fsoc*c; if(store_left253>1){ store_left253--; n=store253++; } else if(gc_free253!=NULL){ n=gc_free253; gc_free253=n->header.next; } else if(store_left253==1){ store_left253=0; store_chunk253->header.state_type=FSO_USED_CHUNK; n=store253++; } else{ c=gc_fsoc_get1(); if(gc_free253!=NULL){ n=gc_free253; gc_free253=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk253=c; *store_chunk253=H253; store253=((gc253*)(&(store_chunk253->first_object))); store_left253=H253.count_minus_one; n=store253++; } } n->header.flag=FSOH_UNMARKED; n->object=M253; return((T253*)n); }/*--*/ void gc_sweep250(fsoc*c){ gc250*o1,*o2; o1=((gc250*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free250; gc_free250=o1; } } } else{ int dead=1; gc250* old_gc_free = gc_free250; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free250; gc_free250=o1; } } if (dead){ gc_free250 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark250(T250*o){ if(((gc250*)o)->header.flag==FSOH_UNMARKED){ ((gc250*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark287((T287*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark283((o->_buckets)); } }/*--*/ void gc_align_mark250(fsoc*c,gc250*p){ gc250*b=((gc250*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store250)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T250*o=(&(p->object)); ((gc250*)o)->header.flag=FSOH_MARKED; /*5p*/if(NULL!=o->_free_nodes)gc_mark287((T287*)(o->_free_nodes)); /*5p*/if(NULL!=o->_buckets)gc_mark283((o->_buckets)); } } }/*--*/ fsoc H250={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark250, (void(*)(mch*))gc_sweep250},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc250))-1)}; T250*new250(void){ gc250*n; fsoc*c; if(store_left250>1){ store_left250--; n=store250++; } else if(gc_free250!=NULL){ n=gc_free250; gc_free250=n->header.next; } else if(store_left250==1){ store_left250=0; store_chunk250->header.state_type=FSO_USED_CHUNK; n=store250++; } else{ c=gc_fsoc_get1(); if(gc_free250!=NULL){ n=gc_free250; gc_free250=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk250=c; *store_chunk250=H250; store250=((gc250*)(&(store_chunk250->first_object))); store_left250=H250.count_minus_one; n=store250++; } } n->header.flag=FSOH_UNMARKED; n->object=M250; return((T250*)n); }/*--*/ void gc_sweep153(fsoc*c){ gc153*o1,*o2; o1=((gc153*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ if((o1->header.flag)==FSOH_UNMARKED){ r153dispose((T153*)o1); }o1->header.next=gc_free153; gc_free153=o1; } } } else{ int dead=1; gc153* old_gc_free = gc_free153; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ if((o1->header.flag)==FSOH_UNMARKED){ r153dispose((T153*)o1); }o1->header.next=gc_free153; gc_free153=o1; } } if (dead){ gc_free153 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark153(T153*o){ if(((gc153*)o)->header.flag==FSOH_UNMARKED){ ((gc153*)o)->header.flag=FSOH_MARKED; /*i8p*/if(NULL!=o->_can_read)gc_mark123((T123*)(o->_can_read)); /*i8p*/if(NULL!=o->_stream_exception)gc_mark113((T113*)(o->_stream_exception)); } }/*--*/ void gc_align_mark153(fsoc*c,gc153*p){ gc153*b=((gc153*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store153)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T153*o=(&(p->object)); ((gc153*)o)->header.flag=FSOH_MARKED; /*i8p*/if(NULL!=o->_can_read)gc_mark123((T123*)(o->_can_read)); /*i8p*/if(NULL!=o->_stream_exception)gc_mark113((T113*)(o->_stream_exception)); } } }/*--*/ fsoc H153={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark153, (void(*)(mch*))gc_sweep153},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc153))-1)}; T153*new153(void){ gc153*n; fsoc*c; if(store_left153>1){ store_left153--; n=store153++; } else if(gc_free153!=NULL){ n=gc_free153; gc_free153=n->header.next; } else if(store_left153==1){ store_left153=0; store_chunk153->header.state_type=FSO_USED_CHUNK; n=store153++; } else{ c=gc_fsoc_get1(); if(gc_free153!=NULL){ n=gc_free153; gc_free153=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk153=c; *store_chunk153=H153; store153=((gc153*)(&(store_chunk153->first_object))); store_left153=H153.count_minus_one; n=store153++; } } n->header.flag=FSOH_UNMARKED; n->object=M153; return((T153*)n); }/*--*/ void gc_sweep249(fsoc*c){ gc249*o1,*o2; o1=((gc249*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free249; gc_free249=o1; } } } else{ int dead=1; gc249* old_gc_free = gc_free249; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free249; gc_free249=o1; } } if (dead){ gc_free249 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark249(T249*o){ if(((gc249*)o)->header.flag==FSOH_UNMARKED){ ((gc249*)o)->header.flag=FSOH_MARKED; /*3p*/{ T282 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r249mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark249(fsoc*c,gc249*p){ gc249*b=((gc249*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store249)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T249*o=(&(p->object)); ((gc249*)o)->header.flag=FSOH_MARKED; /*3p*/{ T282 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r249mark_native_arrays(o); } } }} } }/*--*/ fsoc H249={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark249, (void(*)(mch*))gc_sweep249},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc249))-1)}; T249*new249(void){ gc249*n; fsoc*c; if(store_left249>1){ store_left249--; n=store249++; } else if(gc_free249!=NULL){ n=gc_free249; gc_free249=n->header.next; } else if(store_left249==1){ store_left249=0; store_chunk249->header.state_type=FSO_USED_CHUNK; n=store249++; } else{ c=gc_fsoc_get1(); if(gc_free249!=NULL){ n=gc_free249; gc_free249=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk249=c; *store_chunk249=H249; store249=((gc249*)(&(store_chunk249->first_object))); store_left249=H249.count_minus_one; n=store249++; } } n->header.flag=FSOH_UNMARKED; n->object=M249; return((T249*)n); }/*--*/ void gc_sweep248(fsoc*c){ gc248*o1,*o2; o1=((gc248*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free248; gc_free248=o1; } } } else{ int dead=1; gc248* old_gc_free = gc_free248; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free248; gc_free248=o1; } } if (dead){ gc_free248 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark248(T248*o){ if(((gc248*)o)->header.flag==FSOH_UNMARKED){ ((gc248*)o)->header.flag=FSOH_MARKED; /*3p*/{ T281 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r248mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark248(fsoc*c,gc248*p){ gc248*b=((gc248*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store248)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T248*o=(&(p->object)); ((gc248*)o)->header.flag=FSOH_MARKED; /*3p*/{ T281 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r248mark_native_arrays(o); } } }} } }/*--*/ fsoc H248={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark248, (void(*)(mch*))gc_sweep248},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc248))-1)}; T248*new248(void){ gc248*n; fsoc*c; if(store_left248>1){ store_left248--; n=store248++; } else if(gc_free248!=NULL){ n=gc_free248; gc_free248=n->header.next; } else if(store_left248==1){ store_left248=0; store_chunk248->header.state_type=FSO_USED_CHUNK; n=store248++; } else{ c=gc_fsoc_get1(); if(gc_free248!=NULL){ n=gc_free248; gc_free248=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk248=c; *store_chunk248=H248; store248=((gc248*)(&(store_chunk248->first_object))); store_left248=H248.count_minus_one; n=store248++; } } n->header.flag=FSOH_UNMARKED; n->object=M248; return((T248*)n); }/*--*/ void gc_sweep155(fsoc*c){ gc155*o1,*o2; o1=((gc155*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free155; gc_free155=o1; } } } else{ int dead=1; gc155* old_gc_free = gc_free155; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free155; gc_free155=o1; } } if (dead){ gc_free155 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark155(T155*o){ if(((gc155*)o)->header.flag==FSOH_UNMARKED){ ((gc155*)o)->header.flag=FSOH_MARKED; /*6p*/if(NULL!=o->_events)gc_mark154((T154*)(o->_events)); /*6p*/if(NULL!=o->_ready_jobs)gc_mark280((T280*)(o->_ready_jobs)); /*6p*/if(NULL!=o->_finished_jobs)gc_mark280((T280*)(o->_finished_jobs)); /*6p*/if(NULL!=o->_job_list)gc_mark280((T280*)(o->_job_list)); } }/*--*/ void gc_align_mark155(fsoc*c,gc155*p){ gc155*b=((gc155*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store155)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T155*o=(&(p->object)); ((gc155*)o)->header.flag=FSOH_MARKED; /*6p*/if(NULL!=o->_events)gc_mark154((T154*)(o->_events)); /*6p*/if(NULL!=o->_ready_jobs)gc_mark280((T280*)(o->_ready_jobs)); /*6p*/if(NULL!=o->_finished_jobs)gc_mark280((T280*)(o->_finished_jobs)); /*6p*/if(NULL!=o->_job_list)gc_mark280((T280*)(o->_job_list)); } } }/*--*/ fsoc H155={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark155, (void(*)(mch*))gc_sweep155},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc155))-1)}; T155*new155(void){ gc155*n; fsoc*c; if(store_left155>1){ store_left155--; n=store155++; } else if(gc_free155!=NULL){ n=gc_free155; gc_free155=n->header.next; } else if(store_left155==1){ store_left155=0; store_chunk155->header.state_type=FSO_USED_CHUNK; n=store155++; } else{ c=gc_fsoc_get1(); if(gc_free155!=NULL){ n=gc_free155; gc_free155=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk155=c; *store_chunk155=H155; store155=((gc155*)(&(store_chunk155->first_object))); store_left155=H155.count_minus_one; n=store155++; } } n->header.flag=FSOH_UNMARKED; n->object=M155; return((T155*)n); }/*--*/ void gc_sweep73(fsoc*c){ gc73*o1,*o2; o1=((gc73*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free73; gc_free73=o1; } } } else{ int dead=1; gc73* old_gc_free = gc_free73; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free73; gc_free73=o1; } } if (dead){ gc_free73 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark73(T73*o){ if(((gc73*)o)->header.flag==FSOH_UNMARKED){ ((gc73*)o)->header.flag=FSOH_MARKED; /*9p*/if(NULL!=o->_child)gc_mark279((T279*)(o->_child)); /*9p*/if(NULL!=o->_layout)gc_mark160((T160*)(o->_layout)); } }/*--*/ void gc_align_mark73(fsoc*c,gc73*p){ gc73*b=((gc73*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store73)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T73*o=(&(p->object)); ((gc73*)o)->header.flag=FSOH_MARKED; /*9p*/if(NULL!=o->_child)gc_mark279((T279*)(o->_child)); /*9p*/if(NULL!=o->_layout)gc_mark160((T160*)(o->_layout)); } } }/*--*/ fsoc H73={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark73, (void(*)(mch*))gc_sweep73},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc73))-1)}; T73*new73(void){ gc73*n; fsoc*c; if(store_left73>1){ store_left73--; n=store73++; } else if(gc_free73!=NULL){ n=gc_free73; gc_free73=n->header.next; } else if(store_left73==1){ store_left73=0; store_chunk73->header.state_type=FSO_USED_CHUNK; n=store73++; } else{ c=gc_fsoc_get1(); if(gc_free73!=NULL){ n=gc_free73; gc_free73=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk73=c; *store_chunk73=H73; store73=((gc73*)(&(store_chunk73->first_object))); store_left73=H73.count_minus_one; n=store73++; } } n->header.flag=FSOH_UNMARKED; n->object=M73; return((T73*)n); }/*--*/ void gc_sweep134(fsoc*c){ gc134*o1,*o2; o1=((gc134*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free134; gc_free134=o1; } } } else{ int dead=1; gc134* old_gc_free = gc_free134; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free134; gc_free134=o1; } } if (dead){ gc_free134 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark134(T134*o){ if(((gc134*)o)->header.flag==FSOH_UNMARKED){ ((gc134*)o)->header.flag=FSOH_MARKED; /*i2p*/if(NULL!=o->_can_read)gc_mark123((T123*)(o->_can_read)); } }/*--*/ void gc_align_mark134(fsoc*c,gc134*p){ gc134*b=((gc134*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store134)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T134*o=(&(p->object)); ((gc134*)o)->header.flag=FSOH_MARKED; /*i2p*/if(NULL!=o->_can_read)gc_mark123((T123*)(o->_can_read)); } } }/*--*/ fsoc H134={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark134, (void(*)(mch*))gc_sweep134},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc134))-1)}; T134*new134(void){ gc134*n; fsoc*c; if(store_left134>1){ store_left134--; n=store134++; } else if(gc_free134!=NULL){ n=gc_free134; gc_free134=n->header.next; } else if(store_left134==1){ store_left134=0; store_chunk134->header.state_type=FSO_USED_CHUNK; n=store134++; } else{ c=gc_fsoc_get1(); if(gc_free134!=NULL){ n=gc_free134; gc_free134=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk134=c; *store_chunk134=H134; store134=((gc134*)(&(store_chunk134->first_object))); store_left134=H134.count_minus_one; n=store134++; } } n->header.flag=FSOH_UNMARKED; n->object=M134; return((T134*)n); }/*--*/ void gc_sweep133(fsoc*c){ gc133*o1,*o2; o1=((gc133*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free133; gc_free133=o1; } } } else{ int dead=1; gc133* old_gc_free = gc_free133; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free133; gc_free133=o1; } } if (dead){ gc_free133 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark133(T133*o){ if(((gc133*)o)->header.flag==FSOH_UNMARKED){ ((gc133*)o)->header.flag=FSOH_MARKED; /*4p*/if(NULL!=o->_event_catcher_stack)gc_mark277((T277*)(o->_event_catcher_stack)); /*4p*/if(NULL!=o->_vision)gc_mark65((T65*)(o->_vision)); /*4p*/if(NULL!=o->_loop_stack)gc_mark248((T248*)(o->_loop_stack)); } }/*--*/ void gc_align_mark133(fsoc*c,gc133*p){ gc133*b=((gc133*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store133)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T133*o=(&(p->object)); ((gc133*)o)->header.flag=FSOH_MARKED; /*4p*/if(NULL!=o->_event_catcher_stack)gc_mark277((T277*)(o->_event_catcher_stack)); /*4p*/if(NULL!=o->_vision)gc_mark65((T65*)(o->_vision)); /*4p*/if(NULL!=o->_loop_stack)gc_mark248((T248*)(o->_loop_stack)); } } }/*--*/ fsoc H133={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark133, (void(*)(mch*))gc_sweep133},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc133))-1)}; T133*new133(void){ gc133*n; fsoc*c; if(store_left133>1){ store_left133--; n=store133++; } else if(gc_free133!=NULL){ n=gc_free133; gc_free133=n->header.next; } else if(store_left133==1){ store_left133=0; store_chunk133->header.state_type=FSO_USED_CHUNK; n=store133++; } else{ c=gc_fsoc_get1(); if(gc_free133!=NULL){ n=gc_free133; gc_free133=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk133=c; *store_chunk133=H133; store133=((gc133*)(&(store_chunk133->first_object))); store_left133=H133.count_minus_one; n=store133++; } } n->header.flag=FSOH_UNMARKED; n->object=M133; return((T133*)n); }/*--*/ void gc_sweep131(fsoc*c){ gc131*o1,*o2; o1=((gc131*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free131; gc_free131=o1; } } } else{ int dead=1; gc131* old_gc_free = gc_free131; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free131; gc_free131=o1; } } if (dead){ gc_free131 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark131(T131*o){ begin: if(((gc131*)o)->header.flag==FSOH_UNMARKED){ ((gc131*)o)->header.flag=FSOH_MARKED; /*i11p*/if(NULL!=o->_graphic_connection)gc_mark134((T134*)(o->_graphic_connection)); /*i11p*/if(NULL!=o->_extension_devices)gc_mark268((T268*)(o->_extension_devices)); /*i11p*/if(NULL!=o->_geometry_change_event)gc_mark269((T269*)(o->_geometry_change_event)); /*i11p*/if(NULL!=o->_pointer_move_event)gc_mark271((T271*)(o->_pointer_move_event)); /*i11p*/if(NULL!=o->_event)gc_mark273((T273*)(o->_event)); /*i11p*/if(NULL!=o->_widget)gc_mark276((T276*)(o->_widget)); o=(void*)o->_event_catcher_found; if((o!=NULL))goto begin; } }/*--*/ void gc_align_mark131(fsoc*c,gc131*p){ gc131*b=((gc131*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store131)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T131*o=(&(p->object)); begin: ((gc131*)o)->header.flag=FSOH_MARKED; /*i11p*/if(NULL!=o->_graphic_connection)gc_mark134((T134*)(o->_graphic_connection)); /*i11p*/if(NULL!=o->_extension_devices)gc_mark268((T268*)(o->_extension_devices)); /*i11p*/if(NULL!=o->_geometry_change_event)gc_mark269((T269*)(o->_geometry_change_event)); /*i11p*/if(NULL!=o->_pointer_move_event)gc_mark271((T271*)(o->_pointer_move_event)); /*i11p*/if(NULL!=o->_event)gc_mark273((T273*)(o->_event)); /*i11p*/if(NULL!=o->_widget)gc_mark276((T276*)(o->_widget)); o=(void*)o->_event_catcher_found; if((o!=NULL)&&(((gc131*)o)->header.flag==FSOH_UNMARKED))goto begin; } } }/*--*/ fsoc H131={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark131, (void(*)(mch*))gc_sweep131},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc131))-1)}; T131*new131(void){ gc131*n; fsoc*c; if(store_left131>1){ store_left131--; n=store131++; } else if(gc_free131!=NULL){ n=gc_free131; gc_free131=n->header.next; } else if(store_left131==1){ store_left131=0; store_chunk131->header.state_type=FSO_USED_CHUNK; n=store131++; } else{ c=gc_fsoc_get1(); if(gc_free131!=NULL){ n=gc_free131; gc_free131=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk131=c; *store_chunk131=H131; store131=((gc131*)(&(store_chunk131->first_object))); store_left131=H131.count_minus_one; n=store131++; } } n->header.flag=FSOH_UNMARKED; n->object=M131; return((T131*)n); }/*--*/ void gc_sweep53(fsoc*c){ gc53*o1,*o2; o1=((gc53*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free53; gc_free53=o1; } } } else{ int dead=1; gc53* old_gc_free = gc_free53; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free53; gc_free53=o1; } } if (dead){ gc_free53 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark53(T53*o){ if(((gc53*)o)->header.flag==FSOH_UNMARKED){ ((gc53*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_buffer)gc_mark9((o->_buffer)); } }/*--*/ void gc_align_mark53(fsoc*c,gc53*p){ gc53*b=((gc53*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store53)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T53*o=(&(p->object)); ((gc53*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_buffer)gc_mark9((o->_buffer)); } } }/*--*/ fsoc H53={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark53, (void(*)(mch*))gc_sweep53},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc53))-1)}; T53*new53(void){ gc53*n; fsoc*c; if(store_left53>1){ store_left53--; n=store53++; } else if(gc_free53!=NULL){ n=gc_free53; gc_free53=n->header.next; } else if(store_left53==1){ store_left53=0; store_chunk53->header.state_type=FSO_USED_CHUNK; n=store53++; } else{ c=gc_fsoc_get1(); if(gc_free53!=NULL){ n=gc_free53; gc_free53=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk53=c; *store_chunk53=H53; store53=((gc53*)(&(store_chunk53->first_object))); store_left53=H53.count_minus_one; n=store53++; } } n->header.flag=FSOH_UNMARKED; n->object=M53; return((T53*)n); }/*--*/ void gc_sweep46(fsoc*c){ gc46*o1,*o2; o1=((gc46*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free46; gc_free46=o1; } } } else{ int dead=1; gc46* old_gc_free = gc_free46; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free46; gc_free46=o1; } } if (dead){ gc_free46 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark46(T46*o){ ((gc46*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark46(fsoc*c,gc46*p){ gc46*b=((gc46*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store46)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T46*o=(&(p->object)); ((gc46*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H46={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark46, (void(*)(mch*))gc_sweep46},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc46))-1)}; T46*new46(void){ gc46*n; fsoc*c; if(store_left46>1){ store_left46--; n=store46++; } else if(gc_free46!=NULL){ n=gc_free46; gc_free46=n->header.next; } else if(store_left46==1){ store_left46=0; store_chunk46->header.state_type=FSO_USED_CHUNK; n=store46++; } else{ c=gc_fsoc_get1(); if(gc_free46!=NULL){ n=gc_free46; gc_free46=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk46=c; *store_chunk46=H46; store46=((gc46*)(&(store_chunk46->first_object))); store_left46=H46.count_minus_one; n=store46++; } } n->header.flag=FSOH_UNMARKED; return((T46*)n); }/*--*/ void gc_sweep191(fsoc*c){ gc191*o1,*o2; o1=((gc191*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free191; gc_free191=o1; } } } else{ int dead=1; gc191* old_gc_free = gc_free191; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free191; gc_free191=o1; } } if (dead){ gc_free191 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark191(T191*o){ if(((gc191*)o)->header.flag==FSOH_UNMARKED){ ((gc191*)o)->header.flag=FSOH_MARKED; /*p*/if(NULL!=o->_devices)gc_mark247((T247*)(o->_devices)); } }/*--*/ void gc_align_mark191(fsoc*c,gc191*p){ gc191*b=((gc191*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store191)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T191*o=(&(p->object)); ((gc191*)o)->header.flag=FSOH_MARKED; /*p*/if(NULL!=o->_devices)gc_mark247((T247*)(o->_devices)); } } }/*--*/ fsoc H191={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark191, (void(*)(mch*))gc_sweep191},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc191))-1)}; T191*new191(void){ gc191*n; fsoc*c; if(store_left191>1){ store_left191--; n=store191++; } else if(gc_free191!=NULL){ n=gc_free191; gc_free191=n->header.next; } else if(store_left191==1){ store_left191=0; store_chunk191->header.state_type=FSO_USED_CHUNK; n=store191++; } else{ c=gc_fsoc_get1(); if(gc_free191!=NULL){ n=gc_free191; gc_free191=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk191=c; *store_chunk191=H191; store191=((gc191*)(&(store_chunk191->first_object))); store_left191=H191.count_minus_one; n=store191++; } } n->header.flag=FSOH_UNMARKED; n->object=M191; return((T191*)n); }/*--*/ void gc_sweep247(fsoc*c){ gc247*o1,*o2; o1=((gc247*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free247; gc_free247=o1; } } } else{ int dead=1; gc247* old_gc_free = gc_free247; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free247; gc_free247=o1; } } if (dead){ gc_free247 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark247(T247*o){ if(((gc247*)o)->header.flag==FSOH_UNMARKED){ ((gc247*)o)->header.flag=FSOH_MARKED; /*3p*/{ T264 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r247mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark247(fsoc*c,gc247*p){ gc247*b=((gc247*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store247)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T247*o=(&(p->object)); ((gc247*)o)->header.flag=FSOH_MARKED; /*3p*/{ T264 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r247mark_native_arrays(o); } } }} } }/*--*/ fsoc H247={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark247, (void(*)(mch*))gc_sweep247},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc247))-1)}; T247*new247(void){ gc247*n; fsoc*c; if(store_left247>1){ store_left247--; n=store247++; } else if(gc_free247!=NULL){ n=gc_free247; gc_free247=n->header.next; } else if(store_left247==1){ store_left247=0; store_chunk247->header.state_type=FSO_USED_CHUNK; n=store247++; } else{ c=gc_fsoc_get1(); if(gc_free247!=NULL){ n=gc_free247; gc_free247=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk247=c; *store_chunk247=H247; store247=((gc247*)(&(store_chunk247->first_object))); store_left247=H247.count_minus_one; n=store247++; } } n->header.flag=FSOH_UNMARKED; n->object=M247; return((T247*)n); }/*--*/ void gc_sweep68(fsoc*c){ gc68*o1,*o2; o1=((gc68*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free68; gc_free68=o1; } } } else{ int dead=1; gc68* old_gc_free = gc_free68; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free68; gc_free68=o1; } } if (dead){ gc_free68 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark68(T68*o){ if(((gc68*)o)->header.flag==FSOH_UNMARKED){ ((gc68*)o)->header.flag=FSOH_MARKED; /*14p*/if(NULL!=o->_events_id)gc_mark259((T259*)(o->_events_id)); /*14p*/if(NULL!=o->_events_indexes)gc_mark260((T260*)(o->_events_indexes)); /*14p*/if(NULL!=o->_actions)gc_mark263((T263*)(o->_actions)); /*14p*/if(NULL!=o->_axes_capabilities)gc_mark265((T265*)(o->_axes_capabilities)); /*14p*/if(NULL!=o->_button_capabilities)gc_mark266((T266*)(o->_button_capabilities)); /*14p*/if(NULL!=o->_key_capabilities)gc_mark267((T267*)(o->_key_capabilities)); /*14p*/if(NULL!=o->_type)gc_mark7((T7*)(o->_type)); /*14p*/if(NULL!=o->_name)gc_mark7((T7*)(o->_name)); } }/*--*/ void gc_align_mark68(fsoc*c,gc68*p){ gc68*b=((gc68*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store68)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T68*o=(&(p->object)); ((gc68*)o)->header.flag=FSOH_MARKED; /*14p*/if(NULL!=o->_events_id)gc_mark259((T259*)(o->_events_id)); /*14p*/if(NULL!=o->_events_indexes)gc_mark260((T260*)(o->_events_indexes)); /*14p*/if(NULL!=o->_actions)gc_mark263((T263*)(o->_actions)); /*14p*/if(NULL!=o->_axes_capabilities)gc_mark265((T265*)(o->_axes_capabilities)); /*14p*/if(NULL!=o->_button_capabilities)gc_mark266((T266*)(o->_button_capabilities)); /*14p*/if(NULL!=o->_key_capabilities)gc_mark267((T267*)(o->_key_capabilities)); /*14p*/if(NULL!=o->_type)gc_mark7((T7*)(o->_type)); /*14p*/if(NULL!=o->_name)gc_mark7((T7*)(o->_name)); } } }/*--*/ fsoc H68={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark68, (void(*)(mch*))gc_sweep68},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc68))-1)}; T68*new68(void){ gc68*n; fsoc*c; if(store_left68>1){ store_left68--; n=store68++; } else if(gc_free68!=NULL){ n=gc_free68; gc_free68=n->header.next; } else if(store_left68==1){ store_left68=0; store_chunk68->header.state_type=FSO_USED_CHUNK; n=store68++; } else{ c=gc_fsoc_get1(); if(gc_free68!=NULL){ n=gc_free68; gc_free68=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk68=c; *store_chunk68=H68; store68=((gc68*)(&(store_chunk68->first_object))); store_left68=H68.count_minus_one; n=store68++; } } n->header.flag=FSOH_UNMARKED; n->object=M68; return((T68*)n); }/*--*/ void gc_sweep43(fsoc*c){ gc43*o1,*o2; o1=((gc43*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free43; gc_free43=o1; } } } else{ int dead=1; gc43* old_gc_free = gc_free43; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free43; gc_free43=o1; } } if (dead){ gc_free43 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark43(T43*o){ ((gc43*)o)->header.flag=FSOH_MARKED; }/*--*/ void gc_align_mark43(fsoc*c,gc43*p){ gc43*b=((gc43*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store43)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T43*o=(&(p->object)); ((gc43*)o)->header.flag=FSOH_MARKED; } } }/*--*/ fsoc H43={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark43, (void(*)(mch*))gc_sweep43},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc43))-1)}; T43*new43(void){ gc43*n; fsoc*c; if(store_left43>1){ store_left43--; n=store43++; } else if(gc_free43!=NULL){ n=gc_free43; gc_free43=n->header.next; } else if(store_left43==1){ store_left43=0; store_chunk43->header.state_type=FSO_USED_CHUNK; n=store43++; } else{ c=gc_fsoc_get1(); if(gc_free43!=NULL){ n=gc_free43; gc_free43=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk43=c; *store_chunk43=H43; store43=((gc43*)(&(store_chunk43->first_object))); store_left43=H43.count_minus_one; n=store43++; } } n->header.flag=FSOH_UNMARKED; return((T43*)n); }/*--*/ void gc_sweep70(fsoc*c){ gc70*o1,*o2; o1=((gc70*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free70; gc_free70=o1; } } } else{ int dead=1; gc70* old_gc_free = gc_free70; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free70; gc_free70=o1; } } if (dead){ gc_free70 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark70(T70*o){ if(((gc70*)o)->header.flag==FSOH_UNMARKED){ ((gc70*)o)->header.flag=FSOH_MARKED; /*32p*/if(NULL!=o->_x_history)gc_mark256((T256*)(o->_x_history)); /*32p*/if(NULL!=o->_y_history)gc_mark256((T256*)(o->_y_history)); /*32p*/if(NULL!=o->_time_history)gc_mark256((T256*)(o->_time_history)); /*32p*/if(NULL!=o->_pointer_message_header)gc_mark7((T7*)(o->_pointer_message_header)); /*32p*/if(NULL!=o->_button_message_header)gc_mark7((T7*)(o->_button_message_header)); /*32p*/if(NULL!=o->_xinput_ivy)gc_mark25((T25*)(o->_xinput_ivy)); } }/*--*/ void gc_align_mark70(fsoc*c,gc70*p){ gc70*b=((gc70*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store70)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T70*o=(&(p->object)); ((gc70*)o)->header.flag=FSOH_MARKED; /*32p*/if(NULL!=o->_x_history)gc_mark256((T256*)(o->_x_history)); /*32p*/if(NULL!=o->_y_history)gc_mark256((T256*)(o->_y_history)); /*32p*/if(NULL!=o->_time_history)gc_mark256((T256*)(o->_time_history)); /*32p*/if(NULL!=o->_pointer_message_header)gc_mark7((T7*)(o->_pointer_message_header)); /*32p*/if(NULL!=o->_button_message_header)gc_mark7((T7*)(o->_button_message_header)); /*32p*/if(NULL!=o->_xinput_ivy)gc_mark25((T25*)(o->_xinput_ivy)); } } }/*--*/ fsoc H70={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark70, (void(*)(mch*))gc_sweep70},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc70))-1)}; T70*new70(void){ gc70*n; fsoc*c; if(store_left70>1){ store_left70--; n=store70++; } else if(gc_free70!=NULL){ n=gc_free70; gc_free70=n->header.next; } else if(store_left70==1){ store_left70=0; store_chunk70->header.state_type=FSO_USED_CHUNK; n=store70++; } else{ c=gc_fsoc_get1(); if(gc_free70!=NULL){ n=gc_free70; gc_free70=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk70=c; *store_chunk70=H70; store70=((gc70*)(&(store_chunk70->first_object))); store_left70=H70.count_minus_one; n=store70++; } } n->header.flag=FSOH_UNMARKED; n->object=M70; return((T70*)n); }/*--*/ void gc_sweep244(fsoc*c){ gc244*o1,*o2; o1=((gc244*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free244; gc_free244=o1; } } } else{ int dead=1; gc244* old_gc_free = gc_free244; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free244; gc_free244=o1; } } if (dead){ gc_free244 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark244(T244*o){ if(((gc244*)o)->header.flag==FSOH_UNMARKED){ ((gc244*)o)->header.flag=FSOH_MARKED; /*3p*/{ T255 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r244mark_native_arrays(o); } } }} }/*--*/ void gc_align_mark244(fsoc*c,gc244*p){ gc244*b=((gc244*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store244)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T244*o=(&(p->object)); ((gc244*)o)->header.flag=FSOH_MARKED; /*3p*/{ T255 na=o->_storage; if(gc_find_chunk(na)!=NULL){/* non external NA */ rsoh*h=((rsoh*)na)-1; if((h->header.magic_flag)==RSOH_UNMARKED){ h->header.magic_flag=RSOH_MARKED; r244mark_native_arrays(o); } } }} } }/*--*/ fsoc H244={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark244, (void(*)(mch*))gc_sweep244},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc244))-1)}; T244*new244(void){ gc244*n; fsoc*c; if(store_left244>1){ store_left244--; n=store244++; } else if(gc_free244!=NULL){ n=gc_free244; gc_free244=n->header.next; } else if(store_left244==1){ store_left244=0; store_chunk244->header.state_type=FSO_USED_CHUNK; n=store244++; } else{ c=gc_fsoc_get1(); if(gc_free244!=NULL){ n=gc_free244; gc_free244=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk244=c; *store_chunk244=H244; store244=((gc244*)(&(store_chunk244->first_object))); store_left244=H244.count_minus_one; n=store244++; } } n->header.flag=FSOH_UNMARKED; n->object=M244; return((T244*)n); }/*--*/ void gc_mark9(T9 o){ if(NULL==gc_find_chunk(o)) return; /* external NA */ (((rsoh*)o)-1)->header.magic_flag=RSOH_MARKED; }/*--*/ T9 new9(unsigned int size){ size=(size*sizeof(T3))+sizeof(rsoh); size=((size+(sizeof(double)-1))&~(sizeof(double)-1)); if (size<=(na_env9.store_left)){ rsoh*r=na_env9.store; na_env9.store_left-=size; if(na_env9.store_left>sizeof(rsoh)){ r->header.size=size; na_env9.store=((rsoh*)(((char*)(na_env9.store))+size)); } else { r->header.size=size+na_env9.store_left; na_env9.store_left=0; } (r->header.magic_flag)=RSOH_UNMARKED; ((void)memset((r+1),0,r->header.size-sizeof(rsoh))); return((T9)(r+1)); } return((T9)new_na(&na_env9,size)); }/*--*/ void gc_sweep7(fsoc*c){ gc7*o1,*o2; o1=((gc7*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free7; gc_free7=o1; } } } else{ int dead=1; gc7* old_gc_free = gc_free7; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free7; gc_free7=o1; } } if (dead){ gc_free7 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark7(T7*o){ if(((gc7*)o)->header.flag==FSOH_UNMARKED){ ((gc7*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_storage)gc_mark9((o->_storage)); } }/*--*/ void gc_align_mark7(fsoc*c,gc7*p){ gc7*b=((gc7*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store7)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T7*o=(&(p->object)); ((gc7*)o)->header.flag=FSOH_MARKED; /*3p*/if(NULL!=o->_storage)gc_mark9((o->_storage)); } } }/*--*/ fsoc H7={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark7, (void(*)(mch*))gc_sweep7},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc7))-1)}; T7*new7(void){ gc7*n; fsoc*c; if(store_left7>1){ store_left7--; n=store7++; } else if(gc_free7!=NULL){ n=gc_free7; gc_free7=n->header.next; } else if(store_left7==1){ store_left7=0; store_chunk7->header.state_type=FSO_USED_CHUNK; n=store7++; } else{ c=gc_fsoc_get1(); if(gc_free7!=NULL){ n=gc_free7; gc_free7=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk7=c; *store_chunk7=H7; store7=((gc7*)(&(store_chunk7->first_object))); store_left7=H7.count_minus_one; n=store7++; } } n->header.flag=FSOH_UNMARKED; n->object=M7; return((T7*)n); }/*--*/ void gc_sweep71(fsoc*c){ gc71*o1,*o2; o1=((gc71*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free71; gc_free71=o1; } } } else{ int dead=1; gc71* old_gc_free = gc_free71; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free71; gc_free71=o1; } } if (dead){ gc_free71 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark71(T71*o){ if(((gc71*)o)->header.flag==FSOH_UNMARKED){ ((gc71*)o)->header.flag=FSOH_MARKED; /*i11p*/if(NULL!=o->_ready_message_)gc_mark7((T7*)(o->_ready_message_)); /*i11p*/if(NULL!=o->_application_name_)gc_mark7((T7*)(o->_application_name_)); /*i11p*/if(NULL!=o->_ivy_clients)gc_mark249((T249*)(o->_ivy_clients)); /*i11p*/if(NULL!=o->_events_set)gc_mark154((T154*)(o->_events_set)); /*i11p*/if(NULL!=o->_tmp_client_list)gc_mark249((T249*)(o->_tmp_client_list)); /*i11p*/if(NULL!=o->_callback_list)gc_mark250((T250*)(o->_callback_list)); /*i11p*/if(NULL!=o->_pattern_list)gc_mark253((T253*)(o->_pattern_list)); } }/*--*/ void gc_align_mark71(fsoc*c,gc71*p){ gc71*b=((gc71*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store71)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T71*o=(&(p->object)); ((gc71*)o)->header.flag=FSOH_MARKED; /*i11p*/if(NULL!=o->_ready_message_)gc_mark7((T7*)(o->_ready_message_)); /*i11p*/if(NULL!=o->_application_name_)gc_mark7((T7*)(o->_application_name_)); /*i11p*/if(NULL!=o->_ivy_clients)gc_mark249((T249*)(o->_ivy_clients)); /*i11p*/if(NULL!=o->_events_set)gc_mark154((T154*)(o->_events_set)); /*i11p*/if(NULL!=o->_tmp_client_list)gc_mark249((T249*)(o->_tmp_client_list)); /*i11p*/if(NULL!=o->_callback_list)gc_mark250((T250*)(o->_callback_list)); /*i11p*/if(NULL!=o->_pattern_list)gc_mark253((T253*)(o->_pattern_list)); } } }/*--*/ fsoc H71={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark71, (void(*)(mch*))gc_sweep71},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc71))-1)}; T71*new71(void){ gc71*n; fsoc*c; if(store_left71>1){ store_left71--; n=store71++; } else if(gc_free71!=NULL){ n=gc_free71; gc_free71=n->header.next; } else if(store_left71==1){ store_left71=0; store_chunk71->header.state_type=FSO_USED_CHUNK; n=store71++; } else{ c=gc_fsoc_get1(); if(gc_free71!=NULL){ n=gc_free71; gc_free71=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk71=c; *store_chunk71=H71; store71=((gc71*)(&(store_chunk71->first_object))); store_left71=H71.count_minus_one; n=store71++; } } n->header.flag=FSOH_UNMARKED; n->object=M71; return((T71*)n); }/*--*/ void gc_sweep65(fsoc*c){ gc65*o1,*o2; o1=((gc65*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free65; gc_free65=o1; } } } else{ int dead=1; gc65* old_gc_free = gc_free65; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free65; gc_free65=o1; } } if (dead){ gc_free65 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark65(T65*o){ if(((gc65*)o)->header.flag==FSOH_UNMARKED){ ((gc65*)o)->header.flag=FSOH_MARKED; /*6p*/if(NULL!=o->_widget)gc_mark276((T276*)(o->_widget)); /*6p*/if(NULL!=o->_graphic_connection)gc_mark134((T134*)(o->_graphic_connection)); /*6p*/if(NULL!=o->_event_catcher)gc_mark131((T131*)(o->_event_catcher)); /*6p*/if(NULL!=o->_loop_stack)gc_mark133((T133*)(o->_loop_stack)); } }/*--*/ void gc_align_mark65(fsoc*c,gc65*p){ gc65*b=((gc65*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store65)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T65*o=(&(p->object)); ((gc65*)o)->header.flag=FSOH_MARKED; /*6p*/if(NULL!=o->_widget)gc_mark276((T276*)(o->_widget)); /*6p*/if(NULL!=o->_graphic_connection)gc_mark134((T134*)(o->_graphic_connection)); /*6p*/if(NULL!=o->_event_catcher)gc_mark131((T131*)(o->_event_catcher)); /*6p*/if(NULL!=o->_loop_stack)gc_mark133((T133*)(o->_loop_stack)); } } }/*--*/ fsoc H65={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark65, (void(*)(mch*))gc_sweep65},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc65))-1)}; T65*new65(void){ gc65*n; fsoc*c; if(store_left65>1){ store_left65--; n=store65++; } else if(gc_free65!=NULL){ n=gc_free65; gc_free65=n->header.next; } else if(store_left65==1){ store_left65=0; store_chunk65->header.state_type=FSO_USED_CHUNK; n=store65++; } else{ c=gc_fsoc_get1(); if(gc_free65!=NULL){ n=gc_free65; gc_free65=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk65=c; *store_chunk65=H65; store65=((gc65*)(&(store_chunk65->first_object))); store_left65=H65.count_minus_one; n=store65++; } } n->header.flag=FSOH_UNMARKED; n->object=M65; return((T65*)n); }/*--*/ void gc_sweep25(fsoc*c){ gc25*o1,*o2; o1=((gc25*)(&(c->first_object))); if(c->header.state_type==FSO_STORE_CHUNK){ for(;o1header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; } else{ o1->header.next=gc_free25; gc_free25=o1; } } } else{ int dead=1; gc25* old_gc_free = gc_free25; o2=o1+c->count_minus_one; for(;o1<=o2;o1++){ if((o1->header.flag)==FSOH_MARKED){ o1->header.flag=FSOH_UNMARKED; dead=0;} else{ o1->header.next=gc_free25; gc_free25=o1; } } if (dead){ gc_free25 = old_gc_free; c->next=fsocfl; fsocfl=c; c->header.state_type=FSO_FREE_CHUNK; } } }/*--*/ void gc_mark25(T25*o){ if(((gc25*)o)->header.flag==FSOH_UNMARKED){ ((gc25*)o)->header.flag=FSOH_MARKED; /*8p*/if(NULL!=o->_ivy)gc_mark71((T71*)(o->_ivy)); /*8p*/if(NULL!=o->_screen)gc_mark73((T73*)(o->_screen)); /*8p*/if(NULL!=o->_device_id)gc_mark7((T7*)(o->_device_id)); /*8p*/if(NULL!=o->_application_name)gc_mark7((T7*)(o->_application_name)); /*8p*/if(NULL!=o->_ivy_bus)gc_mark7((T7*)(o->_ivy_bus)); } }/*--*/ void gc_align_mark25(fsoc*c,gc25*p){ gc25*b=((gc25*)(&(c->first_object))); if((c->header.state_type==FSO_STORE_CHUNK)&&(((char*)p)>=((char*)store25)))return; if(((char*)p)>((char*)(b+(c->count_minus_one))))return; if(((char*)p)<((char*)b))return; if(((((char*)p)-((char*)b))%sizeof(*p))==0){ if(p->header.flag==FSOH_UNMARKED){ T25*o=(&(p->object)); ((gc25*)o)->header.flag=FSOH_MARKED; /*8p*/if(NULL!=o->_ivy)gc_mark71((T71*)(o->_ivy)); /*8p*/if(NULL!=o->_screen)gc_mark73((T73*)(o->_screen)); /*8p*/if(NULL!=o->_device_id)gc_mark7((T7*)(o->_device_id)); /*8p*/if(NULL!=o->_application_name)gc_mark7((T7*)(o->_application_name)); /*8p*/if(NULL!=o->_ivy_bus)gc_mark7((T7*)(o->_ivy_bus)); } } }/*--*/ fsoc H25={{FSOC_SIZE,FSO_STORE_CHUNK, (void(*)(mch*,void*))gc_align_mark25, (void(*)(mch*))gc_sweep25},NULL,(((FSOC_SIZE-sizeof(fsoc)+sizeof(double))/sizeof(gc25))-1)}; T25*new25(void){ gc25*n; fsoc*c; if(store_left25>1){ store_left25--; n=store25++; } else if(gc_free25!=NULL){ n=gc_free25; gc_free25=n->header.next; } else if(store_left25==1){ store_left25=0; store_chunk25->header.state_type=FSO_USED_CHUNK; n=store25++; } else{ c=gc_fsoc_get1(); if(gc_free25!=NULL){ n=gc_free25; gc_free25=n->header.next; } else{ if(c==NULL)c=gc_fsoc_get2(); store_chunk25=c; *store_chunk25=H25; store25=((gc25*)(&(store_chunk25->first_object))); store_left25=H25.count_minus_one; n=store25++; } } n->header.flag=FSOH_UNMARKED; n->object=M25; return((T25*)n); }/*--*/ void Xgc_mark286(T0*o){ {int i=o->id; if (i <= 302) { if (i <= 293) { if (i <= 289) { if (i <= 287) { gc_mark287((T287*)o); } else{ gc_mark289((T289*)o); }} else{ gc_mark293((T293*)o); }} else{ if (i <= 297) { gc_mark297((T297*)o); } else{ gc_mark302((T302*)o); }}} else{ if (i <= 317) { if (i <= 311) { if (i <= 308) { gc_mark308((T308*)o); } else{ gc_mark311((T311*)o); }} else{ gc_mark317((T317*)o); }} else{ if (i <= 326) { gc_mark326((T326*)o); } else{ gc_mark329((T329*)o); }}}}}/*--*/ void Xgc_mark49(T0*o){ {int i=o->id; if (i <= 134) { gc_mark134((T134*)o); } else{ gc_mark153((T153*)o); }}}/*--*/ void Xgc_mark72(T0*o){ {int i=o->id; if (i <= 71) { gc_mark71((T71*)o); } else{ gc_mark131((T131*)o); }}}/*--*/ T25*eiffel_root_object=(void*)0; int se_argc; char**se_argv; T7*g[338]; T7*t[338]; int se_strucT[338]={0,sizeof(T1),sizeof(T2),sizeof(T3),0,sizeof(T5),sizeof(T6),sizeof(T7),sizeof(T8),sizeof(T9),sizeof(T10), sizeof(T11), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sizeof(T25), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sizeof(T43), 0, 0, sizeof(T46), 0, 0, 0, 0, 0, 0, sizeof(T53), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sizeof(T65), 0, 0, sizeof(T68), 0, sizeof(T70), sizeof(T71), 0, sizeof(T73), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sizeof(T113), 0, 0, 0, 0, 0, 0, 0, 0, 0, sizeof(T123), 0, 0, 0, 0, 0, 0, 0, sizeof(T131), 0, sizeof(T133), sizeof(T134), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sizeof(T146), 0, sizeof(T148), sizeof(T149), sizeof(T150), 0, 0, sizeof(T153), sizeof(T154), sizeof(T155), 0, 0, 0, 0, sizeof(T160), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sizeof(T191), sizeof(T192), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sizeof(T205), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sizeof(T244), sizeof(T245), 0, sizeof(T247), sizeof(T248), sizeof(T249), sizeof(T250), sizeof(T251), 0, sizeof(T253), sizeof(T254), sizeof(T255), sizeof(T256), sizeof(T257), 0, sizeof(T259), sizeof(T260), sizeof(T261), sizeof(T262), sizeof(T263), sizeof(T264), sizeof(T265), sizeof(T266), sizeof(T267), sizeof(T268), sizeof(T269), 0, sizeof(T271), 0, sizeof(T273), 0, sizeof(T275), sizeof(T276), sizeof(T277), 0, sizeof(T279), sizeof(T280), sizeof(T281), sizeof(T282), sizeof(T283), sizeof(T284), 0, 0, sizeof(T287), sizeof(T288), sizeof(T289), sizeof(T290), sizeof(T291), sizeof(T292), sizeof(T293), sizeof(T294), sizeof(T295), sizeof(T296), sizeof(T297), sizeof(T298), sizeof(T299), sizeof(T300), sizeof(T301), sizeof(T302), sizeof(T303), sizeof(T304), sizeof(T305), sizeof(T306), sizeof(T307), sizeof(T308), 0, sizeof(T310), sizeof(T311), 0, 0, 0, 0, sizeof(T316), sizeof(T317), 0, 0, 0, sizeof(T321), 0, 0, sizeof(T324), 0, sizeof(T326), sizeof(T327), sizeof(T328), sizeof(T329), sizeof(T330), sizeof(T331), sizeof(T332), sizeof(T333), sizeof(T334), sizeof(T335), sizeof(T336), sizeof(T337)}; void se_atexit(void){ r53se_atexit(); }/*--*/ void initialize_eiffel_runtime(int argc,char*argv[]){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ se_argc=argc; se_argv=argv; atexit(se_atexit); gcmt=((mch**)se_malloc((gcmt_max+1)*sizeof(void*))); #ifdef FIXED_STACK_BOTTOM if (!stack_bottom) stack_bottom=((void**)(void*)(&argc)); #endif g[25]=(T7*)se_string("XINPUT_IVY"); g[70]=(T7*)se_string("WACOM_POINTER"); g[153]=(T7*)se_string("IVY_CLIENT"); g[71]=(T7*)se_string("IVY"); g[150]=(T7*)se_string("X11"); g[68]=(T7*)se_string("X_INPUT_DEVICE"); g[191]=(T7*)se_string("X_INPUT_EXTENSION"); g[149]=(T7*)se_string("BUTTON_RANGE"); g[148]=(T7*)se_string("AXES_RANGE"); g[146]=(T7*)se_string("KEY_RANGE"); g[126]=(T7*)se_string("PROCEDURE"); g[175]=(T7*)se_string("MEMORY"); g[15]=(T7*)se_string("TUPLE 1"); g[16]=(T7*)se_string("TUPLE 2"); g[117]=(T7*)se_string("ROUTINE"); g[17]=(T7*)se_string("TUPLE 3"); g[18]=(T7*)se_string("TUPLE 4"); g[19]=(T7*)se_string("TUPLE 5"); g[20]=(T7*)se_string("TUPLE 6"); g[21]=(T7*)se_string("TUPLE 7"); g[22]=(T7*)se_string("TUPLE 8"); g[23]=(T7*)se_string("TUPLE 9"); g[14]=(T7*)se_string("TUPLE"); g[24]=(T7*)se_string("TUPLE 10"); g[8]=(T7*)se_string("POINTER"); g[228]=(T7*)se_string("REFERENCE"); g[30]=(T7*)se_string("ARGUMENTS"); g[116]=(T7*)se_string("FUNCTION"); g[6]=(T7*)se_string("BOOLEAN"); g[99]=(T7*)se_string("SAFE_EQUAL"); g[13]=(T7*)se_string("ANY"); g[189]=(T7*)se_string("WEAK_REFERENCE"); g[42]=(T7*)se_string("PLATFORM"); g[124]=(T7*)se_string("INTERNALS_HANDLER"); g[177]=(T7*)se_string("NATIVE_ARRAY_INTERNALS"); g[51]=(T7*)se_string("TYPED_INTERNALS"); g[57]=(T7*)se_string("NATIVE_ARRAY_COLLECTOR"); g[52]=(T7*)se_string("INTERNALS"); g[56]=(T7*)se_string("COLLECTION"); g[168]=(T7*)se_string("STACK"); g[144]=(T7*)se_string("SIMPLE_DICTIONARY"); g[127]=(T7*)se_string("DICTIONARY"); g[55]=(T7*)se_string("FAST_ARRAY"); g[119]=(T7*)se_string("ARRAY"); g[151]=(T7*)se_string("RING_ARRAY"); g[143]=(T7*)se_string("HASHED_DICTIONARY"); g[98]=(T7*)se_string("NATIVE_ARRAY"); g[201]=(T7*)se_string("STRING_RECYCLING_ITEM"); g[167]=(T7*)se_string("RECYCLING_POOL"); g[174]=(T7*)se_string("STRING_RECYCLING_POOL"); g[226]=(T7*)se_string("STRING_RECYCLING_ITEM_SORTER"); g[188]=(T7*)se_string("ANY_HASHED_DICTIONARY_NODE"); g[58]=(T7*)se_string("ARRAYED_COLLECTION"); g[187]=(T7*)se_string("HASHED_DICTIONARY_NODE"); g[145]=(T7*)se_string("HASH_TABLE_SIZE"); g[218]=(T7*)se_string("DIRECTORY_NOTATION"); g[97]=(T7*)se_string("FILTER"); g[31]=(T7*)se_string("OUTPUT_STREAM"); g[231]=(T7*)se_string("PATH_NAME"); g[122]=(T7*)se_string("FILTER_INPUT_STREAM"); g[44]=(T7*)se_string("TERMINAL_OUTPUT_STREAM"); g[235]=(T7*)se_string("FILE_TOOLS"); g[48]=(T7*)se_string("TERMINAL_INPUT_STREAM"); g[47]=(T7*)se_string("TERMINAL_INPUT_OUTPUT_STREAM"); g[114]=(T7*)se_string("FILTER_OUTPUT_STREAM"); g[49]=(T7*)se_string("INPUT_STREAM"); g[32]=(T7*)se_string("STREAM"); g[109]=(T7*)se_string("FILE"); g[108]=(T7*)se_string("TEXT_FILE_READ"); g[214]=(T7*)se_string("TEXT_FILE_READ_WRITE"); g[46]=(T7*)se_string("STD_INPUT_OUTPUT"); g[43]=(T7*)se_string("STD_ERROR"); g[212]=(T7*)se_string("TEXT_FILE_WRITE"); g[54]=(T7*)se_string("STD_INPUT"); g[53]=(T7*)se_string("STD_OUTPUT"); g[50]=(T7*)se_string("INPUT_STREAM_TOOLS"); g[36]=(T7*)se_string("OUTPUT_STREAM_TOOLS"); g[45]=(T7*)se_string("REDIRECTION_TOOLS"); g[230]=(T7*)se_string("BASIC_DIRECTORY"); g[233]=(T7*)se_string("UNIXISH_PATH_NAME"); g[35]=(T7*)se_string("FILTERABLE"); g[217]=(T7*)se_string("PATH_JOINER"); g[232]=(T7*)se_string("POSIX_PATH_NAME"); g[216]=(T7*)se_string("PATH_NAME_NOTATION"); g[237]=(T7*)se_string("MACINTOSH_DIRECTORY_NOTATION"); g[238]=(T7*)se_string("OPENVMS_DIRECTORY_NOTATION"); g[241]=(T7*)se_string("MICROSOFT_PATH_NAME"); g[240]=(T7*)se_string("WINDOWS_DIRECTORY_NOTATION"); g[215]=(T7*)se_string("UNIX_DIRECTORY_NOTATION"); g[239]=(T7*)se_string("AMIGA_DIRECTORY_NOTATION"); g[242]=(T7*)se_string("CYGWIN_DIRECTORY_NOTATION"); g[67]=(T7*)se_string("UNICODE_STRING_HANDLER"); g[118]=(T7*)se_string("ITERATOR"); g[125]=(T7*)se_string("ITERATOR_ON_TRAVERSABLE"); g[169]=(T7*)se_string("ITERATOR_ON_UNICODE_STRING"); g[178]=(T7*)se_string("ITERATOR_ON_DICTIONARY_ITEMS"); g[121]=(T7*)se_string("ITERATOR_ON_STRING"); g[190]=(T7*)se_string("ITERATOR_ON_DICTIONARY_KEYS"); g[227]=(T7*)se_string("ABSTRACT_SORTER"); g[176]=(T7*)se_string("MINI_PARSER_BUFFER"); g[128]=(T7*)se_string("SIGNAL_0"); g[147]=(T7*)se_string("SIGNAL_1"); g[129]=(T7*)se_string("SIGNAL_2"); g[130]=(T7*)se_string("SIGNAL_4"); g[154]=(T7*)se_string("EVENTS_SET"); g[155]=(T7*)se_string("LOOP_ITEM"); g[112]=(T7*)se_string("EVENT_DESCRIPTOR"); g[72]=(T7*)se_string("JOB"); g[132]=(T7*)se_string("LOOP_STACK"); g[123]=(T7*)se_string("CAN_READ_DATA_FROM_STREAM"); g[211]=(T7*)se_string("NETWORK_CONNECTION_OCCURRED"); g[113]=(T7*)se_string("STREAM_EXCEPTION"); g[115]=(T7*)se_string("CAN_WRITE_DATA_TO_STREAM"); g[75]=(T7*)se_string("CONTAINER"); g[133]=(T7*)se_string("VISION_LOOP_STACK"); g[61]=(T7*)se_string("ALIGNMENT"); g[28]=(T7*)se_string("STATE_CONSTANTS"); g[157]=(T7*)se_string("PIXMAP"); g[76]=(T7*)se_string("SENSITIVE"); g[141]=(T7*)se_string("DRAW_STYLE"); g[78]=(T7*)se_string("WIDGET"); g[142]=(T7*)se_string("DRAWABLE_HANDLER"); g[27]=(T7*)se_string("ALIGNMENT_CONSTANTS"); g[204]=(T7*)se_string("LABEL"); g[134]=(T7*)se_string("GRAPHIC_CONNECTION"); g[69]=(T7*)se_string("EXTENSION_DEVICE"); g[65]=(T7*)se_string("VISION"); g[140]=(T7*)se_string("DRAW_KIT"); g[79]=(T7*)se_string("STATE"); g[77]=(T7*)se_string("DRAWABLE"); g[66]=(T7*)se_string("BASIC_FONT"); g[63]=(T7*)se_string("FONT_MANAGER"); g[26]=(T7*)se_string("GRAPHIC"); g[135]=(T7*)se_string("RECT"); g[131]=(T7*)se_string("EVENT_CATCHER"); g[180]=(T7*)se_string("BUTTON"); g[62]=(T7*)se_string("COLOR"); g[29]=(T7*)se_string("COLOR_LIST"); g[82]=(T7*)se_string("WHEN_UNMAPPED"); g[183]=(T7*)se_string("POINTER_STATUS"); g[96]=(T7*)se_string("WHEN_LEFT_DOWN"); g[94]=(T7*)se_string("WHEN_MIDDLE_DOWN"); g[91]=(T7*)se_string("WHEN_RIGHT_UP"); g[81]=(T7*)se_string("WHEN_GEOMETRY_CHANGE"); g[83]=(T7*)se_string("WHEN_MAPPED"); g[181]=(T7*)se_string("WHEN_DOUBLE_CLICKED"); g[92]=(T7*)se_string("WHEN_RIGHT_DOWN"); g[159]=(T7*)se_string("WHEN_CLOSE_REQUESTED"); g[85]=(T7*)se_string("WHEN_KEY_DOWN"); g[185]=(T7*)se_string("WHEN_RIGHT_CLICKED"); g[95]=(T7*)se_string("WHEN_LEFT_UP"); g[186]=(T7*)se_string("WHEN_MIDDLE_CLICKED"); g[84]=(T7*)se_string("WHEN_KEY_UP"); g[86]=(T7*)se_string("WHEN_POINTER_LEAVE"); g[80]=(T7*)se_string("WHEN_EXPOSE"); g[182]=(T7*)se_string("WHEN_LEFT_CLICKED"); g[89]=(T7*)se_string("WHEN_WHEEL_DOWN"); g[87]=(T7*)se_string("WHEN_POINTER_ENTER"); g[90]=(T7*)se_string("WHEN_WHEEL_UP"); g[93]=(T7*)se_string("WHEN_MIDDLE_UP"); g[88]=(T7*)se_string("WHEN_POINTER_MOVE"); g[196]=(T7*)se_string("COLUMN_LAYOUT"); g[179]=(T7*)se_string("CHECK_SPACE"); g[156]=(T7*)se_string("LAYOUT"); g[160]=(T7*)se_string("ROOT_LAYOUT"); g[202]=(T7*)se_string("ROW_LAYOUT"); g[236]=(T7*)se_string("BUTTON_SPACE"); g[64]=(T7*)se_string("RENDERER"); g[138]=(T7*)se_string("BASIC_RENDERER"); g[137]=(T7*)se_string("CLASSIC_RENDERER"); g[136]=(T7*)se_string("DEFAULT_RENDERER"); g[184]=(T7*)se_string("SUB_WINDOW"); g[158]=(T7*)se_string("TOPLEVEL_WINDOW"); g[203]=(T7*)se_string("SCROLL_VIEW"); g[74]=(T7*)se_string("WINDOW"); g[73]=(T7*)se_string("ROOT_WINDOW"); g[34]=(T7*)se_string("RECYCLABLE"); g[33]=(T7*)se_string("DISPOSABLE"); g[38]=(T7*)se_string("TRAVERSABLE"); g[41]=(T7*)se_string("HASHABLE"); g[39]=(T7*)se_string("STORABLE"); g[40]=(T7*)se_string("COMPARABLE"); g[12]=(T7*)se_string("REAL_EXTENDED"); g[152]=(T7*)se_string("MATH_CONSTANTS"); g[102]=(T7*)se_string("REAL_GENERAL"); g[105]=(T7*)se_string("NATURAL_64"); g[2]=(T7*)se_string("INTEGER_32"); g[106]=(T7*)se_string("NUMBER"); g[4]=(T7*)se_string("REAL_32"); g[1]=(T7*)se_string("INTEGER_8"); g[163]=(T7*)se_string("MUTABLE_BIG_INTEGER"); g[11]=(T7*)se_string("INTEGER_64"); g[120]=(T7*)se_string("NUMBER_TOOLS"); g[59]=(T7*)se_string("INTEGER_GENERAL"); g[5]=(T7*)se_string("REAL_64"); g[100]=(T7*)se_string("NATURAL_16"); g[60]=(T7*)se_string("NUMERIC"); g[104]=(T7*)se_string("NATURAL_32"); g[103]=(T7*)se_string("NATURAL_8"); g[101]=(T7*)se_string("NATURAL_GENERAL"); g[10]=(T7*)se_string("INTEGER_16"); g[164]=(T7*)se_string("FRACTION_WITH_BIG_INTEGER_NUMBER"); g[161]=(T7*)se_string("INTEGER_64_NUMBER"); g[162]=(T7*)se_string("INTEGER_GENERAL_NUMBER"); g[165]=(T7*)se_string("FRACTION_GENERAL_NUMBER"); g[166]=(T7*)se_string("BIG_INTEGER_NUMBER"); g[107]=(T7*)se_string("UNICODE_STRING"); g[3]=(T7*)se_string("CHARACTER"); g[7]=(T7*)se_string("STRING"); g[37]=(T7*)se_string("STRING_HANDLER"); g[243]=(T7*)se_string("TIME_FORMATTER"); g[205]=(T7*)se_string("TIME"); g[192]=(T7*)se_string("MICROSECOND_TIME"); g[206]=(T7*)se_string("TIME_HANDLER"); g[110]=(T7*)se_string("URL"); g[222]=(T7*)se_string("ADDRESS"); g[171]=(T7*)se_string("PROTOCOL"); g[173]=(T7*)se_string("RESOURCE_LOCATOR"); g[208]=(T7*)se_string("ACCESS"); g[210]=(T7*)se_string("SOCKET_INPUT_OUTPUT_STREAM"); g[170]=(T7*)se_string("PROTOCOLS"); g[111]=(T7*)se_string("URL_VALIDITY"); g[221]=(T7*)se_string("HOST"); g[234]=(T7*)se_string("IP_ADDRESS"); g[220]=(T7*)se_string("TCP_ACCESS"); g[193]=(T7*)se_string("SOCKET_SERVER"); g[229]=(T7*)se_string("CLIENT_SOCKET_INPUT_OUTPUT_STREAM"); g[209]=(T7*)se_string("SERVER_SOCKET_INPUT_OUTPUT_STREAM"); g[194]=(T7*)se_string("SOCKET_PLUG_IN"); g[195]=(T7*)se_string("SOCKET_HANDLER"); g[207]=(T7*)se_string("SOCKET"); g[172]=(T7*)se_string("STREAM_PROTOCOL"); g[224]=(T7*)se_string("HTTP_CLIENT_INPUT_STREAM"); g[197]=(T7*)se_string("FILE_PROTOCOL"); g[198]=(T7*)se_string("HTTP_PROTOCOL"); g[199]=(T7*)se_string("TCP_PROTOCOL"); g[223]=(T7*)se_string("HTTP_PROXY"); g[225]=(T7*)se_string("HTTP_CLIENT_OUTPUT_STREAM"); g[213]=(T7*)se_string("FILE_RESOURCE_LOCATOR"); g[200]=(T7*)se_string("NETWORK_RESOURCE_VALIDITY"); g[219]=(T7*)se_string("NETWORK_RESOURCE_LOCATOR"); g[139]=(T7*)se_string("SYSTEM"); g[337]=g[98]; g[336]=g[98]; g[335]=g[98]; g[334]=g[98]; g[333]=g[98]; g[332]=g[98]; g[331]=g[98]; g[330]=g[98]; g[329]=g[189]; g[328]=g[98]; g[327]=g[187]; g[326]=g[189]; g[324]=g[98]; g[321]=g[98]; g[317]=g[189]; g[316]=g[98]; g[311]=g[189]; g[310]=g[98]; g[308]=g[189]; g[307]=g[187]; g[306]=g[98]; g[305]=g[98]; g[304]=g[98]; g[303]=g[98]; g[302]=g[189]; g[301]=g[98]; g[300]=g[187]; g[299]=g[98]; g[298]=g[55]; g[297]=g[189]; g[296]=g[187]; g[295]=g[98]; g[294]=g[98]; g[293]=g[189]; g[292]=g[187]; g[291]=g[98]; g[290]=g[187]; g[289]=g[189]; g[288]=g[143]; g[287]=g[189]; g[284]=g[187]; g[283]=g[98]; g[282]=g[98]; g[281]=g[98]; g[280]=g[55]; g[279]=g[55]; g[277]=g[55]; g[276]=g[143]; g[275]=g[143]; g[273]=g[55]; g[271]=g[143]; g[269]=g[143]; g[268]=g[143]; g[267]=g[55]; g[266]=g[55]; g[265]=g[55]; g[264]=g[98]; g[263]=g[143]; g[262]=g[55]; g[261]=g[147]; g[260]=g[143]; g[259]=g[55]; g[257]=g[119]; g[256]=g[151]; g[255]=g[98]; g[254]=g[98]; g[253]=g[143]; g[251]=g[126]; g[250]=g[143]; g[249]=g[55]; g[248]=g[55]; g[247]=g[55]; g[245]=g[126]; g[244]=g[55]; g[9]=g[98]; t[337]=(T7*)se_string("NATIVE_ARRAY[PROCEDURE[TUPLE]]"); t[336]=(T7*)se_string("NATIVE_ARRAY[PROCEDURE[TUPLE[INTEGER_32,INTEGER_32]]]"); t[335]=(T7*)se_string("NATIVE_ARRAY[PROCEDURE[TUPLE[INTEGER_32,INTEGER_32,INTEGER_32,INTEGER_32]]]"); t[334]=(T7*)se_string("NATIVE_ARRAY[PROCEDURE[TUPLE[X_INPUT_DEVICE]]]"); t[333]=(T7*)se_string("NATIVE_ARRAY[HASHED_DICTIONARY_NODE[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]]"); t[332]=(T7*)se_string("NATIVE_ARRAY[JOB]"); t[331]=(T7*)se_string("NATIVE_ARRAY[TOPLEVEL_WINDOW]"); t[330]=(T7*)se_string("NATIVE_ARRAY[EVENT_CATCHER]"); t[329]=(T7*)se_string("WEAK_REFERENCE[HASHED_DICTIONARY_NODE[SENSITIVE,POINTER]]"); t[328]=(T7*)se_string("NATIVE_ARRAY[HASHED_DICTIONARY_NODE[SENSITIVE,POINTER]]"); t[327]=(T7*)se_string("HASHED_DICTIONARY_NODE[SENSITIVE,POINTER]"); t[326]=(T7*)se_string("WEAK_REFERENCE[HASHED_DICTIONARY_NODE[SIGNAL_0,SENSITIVE]]"); t[324]=(T7*)se_string("NATIVE_ARRAY[HASHED_DICTIONARY_NODE[SIGNAL_0,SENSITIVE]]"); t[321]=(T7*)se_string("NATIVE_ARRAY[DICTIONARY[SIGNAL_0,SENSITIVE]]"); t[317]=(T7*)se_string("WEAK_REFERENCE[HASHED_DICTIONARY_NODE[SIGNAL_2[INTEGER_32,INTEGER_32],SENSITIVE]]"); t[316]=(T7*)se_string("NATIVE_ARRAY[HASHED_DICTIONARY_NODE[SIGNAL_2[INTEGER_32,INTEGER_32],SENSITIVE]]"); t[311]=(T7*)se_string("WEAK_REFERENCE[HASHED_DICTIONARY_NODE[SIGNAL_4[INTEGER_32,INTEGER_32,INTEGER_32,INTEGER_32],SENSITIVE]]"); t[310]=(T7*)se_string("NATIVE_ARRAY[HASHED_DICTIONARY_NODE[SIGNAL_4[INTEGER_32,INTEGER_32,INTEGER_32,INTEGER_32],SENSITIVE]]"); t[308]=(T7*)se_string("WEAK_REFERENCE[HASHED_DICTIONARY_NODE[EXTENSION_DEVICE,INTEGER_32]]"); t[307]=(T7*)se_string("HASHED_DICTIONARY_NODE[EXTENSION_DEVICE,INTEGER_32]"); t[306]=(T7*)se_string("NATIVE_ARRAY[HASHED_DICTIONARY_NODE[EXTENSION_DEVICE,INTEGER_32]]"); t[305]=(T7*)se_string("NATIVE_ARRAY[KEY_RANGE]"); t[304]=(T7*)se_string("NATIVE_ARRAY[BUTTON_RANGE]"); t[303]=(T7*)se_string("NATIVE_ARRAY[AXES_RANGE]"); t[302]=(T7*)se_string("WEAK_REFERENCE[HASHED_DICTIONARY_NODE[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]]"); t[301]=(T7*)se_string("NATIVE_ARRAY[HASHED_DICTIONARY_NODE[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]]"); t[300]=(T7*)se_string("HASHED_DICTIONARY_NODE[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]"); t[299]=(T7*)se_string("NATIVE_ARRAY[SIGNAL_1[X_INPUT_DEVICE]]"); t[298]=(T7*)se_string("FAST_ARRAY[PROCEDURE[TUPLE[X_INPUT_DEVICE]]]"); t[297]=(T7*)se_string("WEAK_REFERENCE[HASHED_DICTIONARY_NODE[INTEGER_32,INTEGER_32]]"); t[296]=(T7*)se_string("HASHED_DICTIONARY_NODE[INTEGER_32,INTEGER_32]"); t[295]=(T7*)se_string("NATIVE_ARRAY[HASHED_DICTIONARY_NODE[INTEGER_32,INTEGER_32]]"); t[294]=(T7*)se_string("NATIVE_ARRAY[INTEGER_32]"); t[293]=(T7*)se_string("WEAK_REFERENCE[HASHED_DICTIONARY_NODE[POINTER,STRING]]"); t[292]=(T7*)se_string("HASHED_DICTIONARY_NODE[POINTER,STRING]"); t[291]=(T7*)se_string("NATIVE_ARRAY[HASHED_DICTIONARY_NODE[POINTER,STRING]]"); t[290]=(T7*)se_string("HASHED_DICTIONARY_NODE[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]"); t[289]=(T7*)se_string("WEAK_REFERENCE[HASHED_DICTIONARY_NODE[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]]"); t[288]=(T7*)se_string("HASHED_DICTIONARY[WEAK_REFERENCE[ANY_HASHED_DICTIONARY_NODE],STRING]"); t[287]=(T7*)se_string("WEAK_REFERENCE[HASHED_DICTIONARY_NODE[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]]"); t[284]=(T7*)se_string("HASHED_DICTIONARY_NODE[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]"); t[283]=(T7*)se_string("NATIVE_ARRAY[HASHED_DICTIONARY_NODE[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]]"); t[282]=(T7*)se_string("NATIVE_ARRAY[IVY_CLIENT]"); t[281]=(T7*)se_string("NATIVE_ARRAY[LOOP_ITEM]"); t[280]=(T7*)se_string("FAST_ARRAY[JOB]"); t[279]=(T7*)se_string("FAST_ARRAY[TOPLEVEL_WINDOW]"); t[277]=(T7*)se_string("FAST_ARRAY[EVENT_CATCHER]"); t[276]=(T7*)se_string("HASHED_DICTIONARY[SENSITIVE,POINTER]"); t[275]=(T7*)se_string("HASHED_DICTIONARY[SIGNAL_0,SENSITIVE]"); t[273]=(T7*)se_string("FAST_ARRAY[DICTIONARY[SIGNAL_0,SENSITIVE]]"); t[271]=(T7*)se_string("HASHED_DICTIONARY[SIGNAL_2[INTEGER_32,INTEGER_32],SENSITIVE]"); t[269]=(T7*)se_string("HASHED_DICTIONARY[SIGNAL_4[INTEGER_32,INTEGER_32,INTEGER_32,INTEGER_32],SENSITIVE]"); t[268]=(T7*)se_string("HASHED_DICTIONARY[EXTENSION_DEVICE,INTEGER_32]"); t[267]=(T7*)se_string("FAST_ARRAY[KEY_RANGE]"); t[266]=(T7*)se_string("FAST_ARRAY[BUTTON_RANGE]"); t[265]=(T7*)se_string("FAST_ARRAY[AXES_RANGE]"); t[264]=(T7*)se_string("NATIVE_ARRAY[X_INPUT_DEVICE]"); t[263]=(T7*)se_string("HASHED_DICTIONARY[FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]],SENSITIVE]"); t[262]=(T7*)se_string("FAST_ARRAY[SIGNAL_1[X_INPUT_DEVICE]]"); t[261]=(T7*)se_string("SIGNAL_1[X_INPUT_DEVICE]"); t[260]=(T7*)se_string("HASHED_DICTIONARY[INTEGER_32,INTEGER_32]"); t[259]=(T7*)se_string("FAST_ARRAY[INTEGER_32]"); t[257]=(T7*)se_string("ARRAY[STRING]"); t[256]=(T7*)se_string("RING_ARRAY[INTEGER_32]"); t[255]=(T7*)se_string("NATIVE_ARRAY[STRING]"); t[254]=(T7*)se_string("NATIVE_ARRAY[POINTER]"); t[253]=(T7*)se_string("HASHED_DICTIONARY[POINTER,STRING]"); t[251]=(T7*)se_string("PROCEDURE[TUPLE[FAST_ARRAY[STRING]]]"); t[250]=(T7*)se_string("HASHED_DICTIONARY[PROCEDURE[TUPLE[FAST_ARRAY[STRING]]],STRING]"); t[249]=(T7*)se_string("FAST_ARRAY[IVY_CLIENT]"); t[248]=(T7*)se_string("FAST_ARRAY[LOOP_ITEM]"); t[247]=(T7*)se_string("FAST_ARRAY[X_INPUT_DEVICE]"); t[245]=(T7*)se_string("PROCEDURE[TUPLE[X_INPUT_DEVICE]]"); t[244]=(T7*)se_string("FAST_ARRAY[STRING]"); t[205]=g[205]; t[192]=g[192]; t[191]=g[191]; t[160]=g[160]; t[155]=g[155]; t[154]=g[154]; t[153]=g[153]; t[150]=g[150]; t[149]=g[149]; t[148]=g[148]; t[146]=g[146]; t[134]=g[134]; t[133]=g[133]; t[131]=g[131]; t[123]=g[123]; t[113]=g[113]; t[73]=g[73]; t[71]=g[71]; t[70]=g[70]; t[68]=g[68]; t[65]=g[65]; t[53]=g[53]; t[46]=g[46]; t[43]=g[43]; t[25]=g[25]; t[11]=g[11]; t[10]=g[10]; t[9]=(T7*)se_string("NATIVE_ARRAY[CHARACTER]"); t[8]=g[8]; t[7]=g[7]; t[6]=g[6]; t[5]=g[5]; t[3]=g[3]; t[2]=g[2]; t[1]=g[1]; #ifdef SIGQUIT signal(SIGQUIT,se_signal_handler); #endif #ifdef SIGILL signal(SIGILL,se_signal_handler); #endif #ifdef SIGABRT signal(SIGABRT,se_signal_handler); #endif #ifdef SIGFPE signal(SIGFPE,se_signal_handler); #endif #ifdef SIGSEGV signal(SIGSEGV,se_signal_handler); #endif #ifdef SIGBUS signal(SIGBUS,se_signal_handler); #endif #ifdef SIGSYS signal(SIGSYS,se_signal_handler); #endif #ifdef SIGTRAP signal(SIGTRAP,se_signal_handler); #endif #ifdef SIGXCPU signal(SIGXCPU,se_signal_handler); #endif #ifdef SIGXFSZ signal(SIGXFSZ,se_signal_handler); #endif se_msi1(); /*PCO*/ oBC102sprintf_buffer=new9(INT32_C(1024)); /*PCO*/ tmp0/*new*/=((T0*)(new46())); oBC13io=tmp0/*new*/; /*tmp0.unlock*/ /*PCO*/ /*reusing tmp0*/tmp0/*new*/=((T0*)(new43())); oBC13std_error=tmp0/*new*/; /*tmp0.unlock*/ gc_is_off=0; /*reusing tmp0*/tmp0/*root*/=((T0*)(new25())); r150default_create(); eiffel_root_object=((T25*)tmp0/*root*/); /*tmp0.unlock*/ }/*--*/ int main(int argc,char*argv[]){ /*[INTERNAL_C_LOCAL list*/ T0* tmp0; /*INTERNAL_C_LOCAL list]*/ stack_bottom=((void**)(void*)(&argc)); initialize_eiffel_runtime(argc,argv); tmp0/*prof*/=((T0*)eiffel_root_object); r25make(((T25*)tmp0/*prof*/)); gc_dispose_before_exit(); handle(SE_HANDLE_NORMAL_EXIT, NULL); /*tmp0.unlock*/ exit(0); return 0; }/*--*/ #ifdef __cplusplus } #endif