Commit b2372b58 authored by Kevin Modzelewski's avatar Kevin Modzelewski

Fix a pyexpat issue

We were double-registering its exception type as a static constant.
parent a0f0cb72
# expected: reffail
# - negative ref
from DocXMLRPCServer import DocXMLRPCServer
import httplib
import sys
......
# expected: fail
# skip-if: True
# - This test hangs and the tester fails to clean it up.
#
# Unit tests for the multiprocessing package
#
......
# expected: reffail
# - negative ref
# Copyright (C) 2003 Python Software Foundation
import unittest
......
# expected: reffail
# - unknown segfault
doctests = """
Unpack tuple
......
......@@ -1143,9 +1143,7 @@ xmlparse_ExternalEntityParserCreate(xmlparseobject *self, PyObject *args)
for (i = 0; handler_info[i].name != NULL; i++)
/* do nothing */;
// Pyston change: use GC alloc routine because those contain Python objects
// new_parser->handlers = malloc(sizeof(PyObject *) * i);
new_parser->handlers = PyMem_Malloc(sizeof(PyObject *) * i);
new_parser->handlers = malloc(sizeof(PyObject *) * i);
if (!new_parser->handlers) {
Py_DECREF(new_parser);
return PyErr_NoMemory();
......@@ -1364,9 +1362,7 @@ newxmlparseobject(char *encoding, char *namespace_separator, PyObject *intern)
for (i = 0; handler_info[i].name != NULL; i++)
/* do nothing */;
// Pyston change: use GC alloc routine because those contain Python objects
// self->handlers = malloc(sizeof(PyObject *) * i);
self->handlers = PyMem_Malloc(sizeof(PyObject *) * i);
self->handlers = malloc(sizeof(PyObject *) * i);
if (!self->handlers) {
Py_DECREF(self);
return PyErr_NoMemory();
......@@ -1397,8 +1393,7 @@ xmlparse_dealloc(xmlparseobject *self)
self->handlers[i] = NULL;
Py_XDECREF(temp);
}
// Pyston change: object are allocated using the GC not malloc
// free(self->handlers);
free(self->handlers);
self->handlers = NULL;
}
if (self->buffer != NULL) {
......@@ -1891,8 +1886,7 @@ MODULE_INITFUNC(void)
/* Add some symbolic constants to the module */
if (ErrorObject == NULL) {
ErrorObject = PyGC_RegisterStaticConstant(PyErr_NewException("xml.parsers.expat.ExpatError",
NULL, NULL));
ErrorObject = PyErr_NewException("xml.parsers.expat.ExpatError", NULL, NULL);
if (ErrorObject == NULL)
return;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment