aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/libpyside/pysideqflags.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-06-08 15:47:08 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-06-08 22:04:43 +0200
commit5c3002ebae8e31b3aa05a43e418b196653b041d6 (patch)
tree2af5dee9446e9500e8fedce173d5164b6339a114 /sources/pyside2/libpyside/pysideqflags.cpp
parent15b509e4ab51a0a999190ef4f567a79cbdb541f3 (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.cpp14
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);