PRVM_G_FLOAT(OFS_RETURN) = filenum;
if (developer.integer >= 100)
Con_Printf("VM_fopen: %s: %s mode %s opened as #%i\n", PRVM_NAME, filename, modestring, filenum);
+ prog->openfiles_origin[filenum] = PRVM_AllocationOrigin();
}
}
}
FS_Close(prog->openfiles[filenum]);
prog->openfiles[filenum] = NULL;
+ if(prog->openfiles_origin[filenum])
+ PRVM_Free((char *)prog->openfiles_origin[filenum]);
if (developer.integer >= 100)
Con_Printf("VM_fclose: %s: #%i closed\n", PRVM_NAME, filenum);
}
if(!(prog->opensearches[handle] = FS_Search(pattern,caseinsens, quiet)))
PRVM_G_FLOAT(OFS_RETURN) = -1;
else
+ {
+ prog->opensearches_origin[handle] = PRVM_AllocationOrigin();
PRVM_G_FLOAT(OFS_RETURN) = handle;
+ }
}
/*
FS_FreeSearch(prog->opensearches[handle]);
prog->opensearches[handle] = NULL;
+ if(prog->opensearches_origin[handle])
+ PRVM_Free((char *)prog->opensearches_origin[handle]);
}
/*
VM_SAFEPARMCOUNT(0, VM_buf_create);
stringbuffer = Mem_ExpandableArray_AllocRecord(&prog->stringbuffersarray);
for (i = 0;stringbuffer != Mem_ExpandableArray_RecordAtIndex(&prog->stringbuffersarray, i);i++);
+ stringbuffer->origin = PRVM_AllocationOrigin();
PRVM_G_FLOAT(OFS_RETURN) = i;
}
Mem_Free(stringbuffer->strings[i]);
if (stringbuffer->strings)
Mem_Free(stringbuffer->strings);
+ if(stringbuffer->origin)
+ PRVM_Free((char *)stringbuffer->origin);
Mem_ExpandableArray_FreeRecord(&prog->stringbuffersarray, stringbuffer);
}
else