DVX_GUI/apps/dvxbasic/compiler/strip.c

39 lines
984 B
C

// 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 <stdlib.h>
#include <string.h>
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;
}
}