39 lines
984 B
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;
|
|
}
|
|
}
|