// strip.c -- Release build stripping // // Removes debug information from a compiled module: // - Clears debug variable info (names, scopes, types) // - Clears debug UDT definitions // // Procedure names are preserved because the form runtime uses // them for event dispatch (ControlName_EventName convention). // // OP_LINE removal is deferred to a future version (requires // bytecode compaction and offset rewriting). #include "strip.h" #include #include void basStripModule(BasModuleT *mod) { if (!mod) { return; } // Clear debug variable info free(mod->debugVars); mod->debugVars = NULL; mod->debugVarCount = 0; // Clear debug UDT definitions if (mod->debugUdtDefs) { for (int32_t i = 0; i < mod->debugUdtDefCount; i++) { free(mod->debugUdtDefs[i].fields); } free(mod->debugUdtDefs); mod->debugUdtDefs = NULL; mod->debugUdtDefCount = 0; } }