diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-06-08 15:47:08 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-06-08 22:04:43 +0200 |
| commit | 5c3002ebae8e31b3aa05a43e418b196653b041d6 (patch) | |
| tree | 2af5dee9446e9500e8fedce173d5164b6339a114 /sources/pyside2/libpyside/pysideqflags.cpp | |
| parent | 15b509e4ab51a0a999190ef4f567a79cbdb541f3 (diff) | |
Fix some leaks in enumeration creation
Create the PyType_Spec on the stack.
Task-number: PYSIDE-1321
Change-Id: Ie340dffe1915f99f81caec74432cff9359764001
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside2/libpyside/pysideqflags.cpp')
| -rw-r--r-- | sources/pyside2/libpyside/pysideqflags.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sources/pyside2/libpyside/pysideqflags.cpp b/sources/pyside2/libpyside/pysideqflags.cpp index d7e6b4f4c..b141ce157 100644 --- a/sources/pyside2/libpyside/pysideqflags.cpp +++ b/sources/pyside2/libpyside/pysideqflags.cpp @@ -175,18 +175,18 @@ namespace QFlags // PYSIDE-747: Here we insert now the full class name. strcpy(qualname, name); // Careful: SbkType_FromSpec does not allocate the string. - PyType_Spec *newspec = new PyType_Spec; - newspec->name = strdup(qualname); - newspec->basicsize = SbkNewQFlagsType_spec.basicsize; - newspec->itemsize = SbkNewQFlagsType_spec.itemsize; - newspec->flags = SbkNewQFlagsType_spec.flags; + PyType_Spec newspec; + newspec.name = strdup(qualname); + newspec.basicsize = SbkNewQFlagsType_spec.basicsize; + newspec.itemsize = SbkNewQFlagsType_spec.itemsize; + newspec.flags = SbkNewQFlagsType_spec.flags; int idx = -1; while (numberMethods[++idx].slot) { assert(SbkNewQFlagsType_slots[idx].slot == numberMethods[idx].slot); SbkNewQFlagsType_slots[idx].pfunc = numberMethods[idx].pfunc; } - newspec->slots = SbkNewQFlagsType_spec.slots; - PyTypeObject *type = (PyTypeObject *)SbkType_FromSpec(newspec); + newspec.slots = SbkNewQFlagsType_spec.slots; + PyTypeObject *type = (PyTypeObject *)SbkType_FromSpec(&newspec); Py_TYPE(type) = &PyType_Type; PySideQFlagsType *flagsType = reinterpret_cast<PySideQFlagsType *>(type); |
