void env_clear(word segm) { DBG_ENTER("env_clear", "env") DBG_ARGUMENTS( ("env=%u", segm) ) chkMem unless_segm(segm) DBG_EXIT /* no source environment */ DBG_ARGUMENTS( ("effective env=%u", segm) ) ENV_CLEAR_SEGM(segm); chkMem DBG_EXIT }
void env_delete(word segm) { DBG_ENTER("env_delete", Suppl_env) DBG_ARGUMENTS( ("env=%u", segm) ) chkMem unless_segm(segm) DBG_EXIT DBG_ARGUMENTS( ("effective env=%u", segm) ) pokew(SEG2MCB(segm), MCB_OFF_OWNER, _psp); freeBlk(segm); chkMem /* Make sure the deleted segment won't be referenced */ env_relocateSegment(segm, 0); DBG_EXIT }
int env_nullStrings(word segm) { word ofs; DBG_ENTER("env_nullStrings", Suppl_env) DBG_ARGUMENTS( ("env=%u", segm) ) chkMem unless_segm(segm) DBG_RETURN_I( ESUPPL_NOENV) DBG_ARGUMENTS( ("effective env=%u", segm) ) ofs = env_endOfVars(segm) + 1; /* offset of string counter word */ if(mcb_length(segm) - 2 <= ofs) DBG_RETURN_I( ESUPPL_NOMEM) pokew(segm, ofs, 0); chkMem DBG_RETURN_I( ESUPPL_OK) }