| 1904 | |
| 1905 | |
| 1906 | void fxNewModule(txMachine* the, txSlot* realm, txID moduleID, txFlag moduleFlag, txSlot* module) |
| 1907 | { |
| 1908 | txSlot* slot; |
| 1909 | |
| 1910 | mxPush(mxModulePrototype); |
| 1911 | slot = fxNewObjectInstance(the); |
| 1912 | slot->flag |= XS_EXOTIC_FLAG | XS_DONT_PATCH_FLAG; |
| 1913 | /* HOST */ |
| 1914 | slot = slot->next = fxNewSlot(the); |
| 1915 | slot->ID = XS_MODULE_BEHAVIOR; |
| 1916 | slot->flag = XS_INTERNAL_FLAG | moduleFlag; |
| 1917 | slot->kind = XS_MODULE_KIND; |
| 1918 | slot->value.module.realm = realm; |
| 1919 | slot->value.module.id = moduleID; |
| 1920 | /* EXPORTS */ |
| 1921 | slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG); |
| 1922 | /* STUFF */ |
| 1923 | slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG); |
| 1924 | /* META */ |
| 1925 | slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG); |
| 1926 | /* TRANSFERS */ |
| 1927 | slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG); |
| 1928 | /* INITIALIZE */ |
| 1929 | slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG); |
| 1930 | /* FUNCTION */ |
| 1931 | slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG); |
| 1932 | /* HOSTS */ |
| 1933 | slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG); |
| 1934 | /* LOADER */ |
| 1935 | slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG); |
| 1936 | slot->flag = XS_INTERNAL_FLAG | moduleFlag; |
| 1937 | slot->kind = XS_MODULE_KIND; |
| 1938 | slot->value.module.realm = realm; |
| 1939 | slot->value.module.id = moduleID; |
| 1940 | module->kind = the->stack->kind; |
| 1941 | module->value = the->stack->value; |
| 1942 | mxPop(); |
| 1943 | #if mxInstrument |
| 1944 | the->loadedModulesCount++; |
| 1945 | #endif |
| 1946 | } |
| 1947 | |
| 1948 | void fxOrderModule(txMachine* the, txSlot* queue, txSlot* order, txSlot* module) |
| 1949 | { |
no test coverage detected