minor fixes & removed a leak when freeing functions

This commit is contained in:
Wenzel Jakob 2016-01-17 22:36:40 +01:00
parent b2c2c79240
commit 95d18691c9

View File

@ -341,7 +341,6 @@ private:
static void destruct(function_entry *entry) {
while (entry) {
function_entry *next = entry->next;
delete entry->def;
if (entry->free_data)
entry->free_data(entry->data);
std::free((char *) entry->name);
@ -352,6 +351,10 @@ private:
std::free((char *) arg.descr);
Py_XDECREF(arg.value);
}
if (entry->def) {
free((char *) entry->def->ml_doc);
delete entry->def;
}
delete entry;
entry = next;
}
@ -410,7 +413,7 @@ private:
signature += c;
}
}
if (type_depth != 0 && types[type_index ] != nullptr)
if (type_depth != 0 || types[type_index] != nullptr)
throw std::runtime_error("Internal error while parsing type signature (2)");
#if !defined(PYBIND11_CPP14)