]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - csprogs.c
Fix Windows-specific use-after-free causing crash after disconnecting
[xonotic/darkplaces.git] / csprogs.c
index 875f376525f280b538b80039a40f456a6cfef9bf..fb37cba069df80f097eca368b59ecbab582eb7cd 100644 (file)
--- a/csprogs.c
+++ b/csprogs.c
@@ -485,6 +485,8 @@ qboolean CL_VM_UpdateView (double frametime)
                r_refdef.scene.numlights = 0;
                // polygonbegin without draw2d arg has to guess
                prog->polygonbegin_guess2d = false;
+               // free memory for resources that are no longer referenced
+               PRVM_GarbageCollection(prog);
                // pass in width and height as parameters (EXT_CSQC_1)
                PRVM_G_FLOAT(OFS_PARM0) = vid.width;
                PRVM_G_FLOAT(OFS_PARM1) = vid.height;
@@ -1059,7 +1061,7 @@ void CL_VM_Init (void)
                return;
        }
 
-       PRVM_Prog_Init(prog);
+       PRVM_Prog_Init(prog, &cmd_client);
 
        // allocate the mempools
        prog->progs_mempool = Mem_AllocPool(csqc_progname.string, 0, NULL);
@@ -1161,7 +1163,7 @@ void CL_VM_Init (void)
 void CL_VM_ShutDown (void)
 {
        prvm_prog_t *prog = CLVM_prog;
-       Cmd_ClearCsqcFuncs(&cmd_client);
+       Cmd_ClearCSQCCommands(&cmd_client);
        //Cvar_SetValueQuick(&csqc_progcrc, -1);
        //Cvar_SetValueQuick(&csqc_progsize, -1);
        if(!cl.csqc_loaded)