X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=exec.cpp;h=387923f27b3c9d86f7cf772085ba2740a689087a;hp=9e49ed8e9367df2537c8af5493c1d8decd89f342;hb=fb3af2831b9a6e3156de2577bf71e34ccd5c1e4e;hpb=5a0d645ede33cd42d88f1be6da70c631778b3038 diff --git a/exec.cpp b/exec.cpp index 9e49ed8..387923f 100644 --- a/exec.cpp +++ b/exec.cpp @@ -113,7 +113,8 @@ qc_program_t* prog_load(const char *filename, bool skipversion) /* spawn the world entity */ prog->entitypool.emplace_back(true); prog->entitydata.resize(prog->entityfields); - memset(prog->entitydata.data(), 0, sizeof(prog->entitydata[0]) * prog->entityfields); + if (prog->entitydata.size()) + memset(prog->entitydata.data(), 0, sizeof(prog->entitydata[0]) * prog->entityfields); prog->entities = 1; /* cache some globals and fields from names */ @@ -517,8 +518,10 @@ static qcint_t prog_leavefunction(qc_program_t *prog) { oldsp = prog->stack[prog->stack.size()-1].localsp; #endif if (prev) { - qcint_t *globals = &prog->globals[0] + prev->firstlocal; - memcpy(globals, &prog->localstack[oldsp], prev->locals * sizeof(prog->localstack[0])); + if (prev->locals) { + qcint_t *globals = &prog->globals[0] + prev->firstlocal; + memcpy(globals, &prog->localstack[oldsp], prev->locals * sizeof(prog->localstack[0])); + } prog->localstack.resize(oldsp); }