MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / fxOverrideModule

Function fxOverrideModule

xs/sources/xsModule.c:1987–2021  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1985}
1986
1987void fxOverrideModule(txMachine* the, txSlot* queue, txSlot* list, txSlot* result, txSlot* module, txSlot* record)
1988{
1989 txSlot** address = &(queue->next);
1990 txSlot* slot;
1991 while ((slot = *address)) {
1992 if (slot->value.reference == module) {
1993// slot->value.reference = record;
1994 *address = slot->next;
1995 }
1996 else {
1997 if (mxModuleStatus(slot) == XS_MODULE_STATUS_LINKING) {
1998 txSlot* transfer = mxModuleTransfers(slot)->value.reference->next;
1999 while (transfer) {
2000 txSlot* from = mxTransferFrom(transfer);
2001 if ((from->kind == XS_REFERENCE_KIND) && (from->value.reference == module))
2002 from->value.reference = record;
2003 transfer = transfer->next;
2004 }
2005 }
2006 }
2007 address = &(slot->next);
2008 }
2009 slot = list->value.reference->next;
2010 while (slot) {
2011 if (slot->value.reference == module) {
2012 slot->value.reference = record;
2013 }
2014 slot = slot->next;
2015 }
2016 if (result) {
2017 if (result->value.reference == module) {
2018 result->value.reference = record;
2019 }
2020 }
2021}
2022
2023void fxPrepareModule(txMachine* the, txFlag flag)
2024{

Callers 2

fxMapModuleDescriptorFunction · 0.85
fxLoadModuleStuffFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected