summaryrefslogtreecommitdiffstats
path: root/Objects/frameobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/frameobject.c')
-rw-r--r--Objects/frameobject.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index 6adc036..dfb3a2e 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -265,8 +265,6 @@ PyFrame_New(PyThreadState *tstate, PyCodeObject *code, PyObject *globals,
if (f == NULL)
return NULL;
}
- else
- extras = f->ob_size;
_Py_NewReference((PyObject *)f);
}
if (builtins == NULL) {
@@ -317,10 +315,10 @@ PyFrame_New(PyThreadState *tstate, PyCodeObject *code, PyObject *globals,
f->f_ncells = ncells;
f->f_nfreevars = nfrees;
- while (--extras >= 0)
- f->f_localsplus[extras] = NULL;
+ extras = f->f_nlocals + ncells + nfrees;
+ memset(f->f_localsplus, 0, extras * sizeof(f->f_localsplus[0]));
- f->f_valuestack = f->f_localsplus + (f->f_nlocals + ncells + nfrees);
+ f->f_valuestack = f->f_localsplus + extras;
f->f_stacktop = f->f_valuestack;
_PyObject_GC_TRACK(f);
return f;