Commit 751f2ac4 authored by Kevin Modzelewski's avatar Kevin Modzelewski

gc stuff

parent 3bd1c068
......@@ -742,6 +742,8 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
static void
debug_instance(char *msg, PyInstanceObject *inst)
{
Py_FatalError("unimplemented");
#if 0
char *cname;
/* simple version of instance_repr */
PyObject *classname = inst->in_class->cl_name;
......@@ -751,6 +753,7 @@ debug_instance(char *msg, PyInstanceObject *inst)
cname = "?";
PySys_WriteStderr("gc: %.100s <%.100s instance at %p>\n",
msg, cname, inst);
#endif
}
static void
......@@ -838,7 +841,8 @@ static void
clear_freelists(void)
{
(void)PyMethod_ClearFreeList();
(void)PyFrame_ClearFreeList();
Py_FatalError("unimplemented");
//(void)PyFrame_ClearFreeList();
(void)PyCFunction_ClearFreeList();
(void)PyTuple_ClearFreeList();
#ifdef Py_USING_UNICODE
......
......@@ -3409,7 +3409,6 @@ extern "C" int PyType_Ready(PyTypeObject* cls) noexcept {
gc::registerNonheapRootObject(cls, sizeof(PyTypeObject));
classes.push_back(cls);
_Py_INC_REFTOTAL;
// unhandled fields:
int ALLOWABLE_FLAGS = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_CHECKTYPES
......
......@@ -1939,34 +1939,6 @@ extern "C" int PyErr_WarnExplicit(PyObject* category, const char* text, const ch
#undef PyObject_GC_Del
#undef _PyObject_GC_Malloc
extern "C" PyObject* _PyObject_GC_Malloc(size_t basicsize) noexcept {
Box* r = ((PyObject*)PyObject_MALLOC(basicsize));
RELEASE_ASSERT(gc::isValidGCMemory(r), "");
return r;
}
#undef _PyObject_GC_New
extern "C" PyObject* _PyObject_GC_New(PyTypeObject* tp) noexcept {
PyObject* op = _PyObject_GC_Malloc(_PyObject_SIZE(tp));
if (op != NULL)
op = PyObject_INIT(op, tp);
RELEASE_ASSERT(gc::isValidGCObject(op), "");
return op;
}
extern "C" PyVarObject* _PyObject_GC_NewVar(PyTypeObject* tp, Py_ssize_t nitems) noexcept {
const size_t size = _PyObject_VAR_SIZE(tp, nitems);
PyVarObject* op = (PyVarObject*)_PyObject_GC_Malloc(size);
if (op != NULL)
op = PyObject_INIT_VAR(op, tp, nitems);
RELEASE_ASSERT(gc::isValidGCObject(op), "");
return op;
}
extern "C" void PyObject_GC_Del(void* op) noexcept {
PyObject_FREE(op);
}
#ifdef HAVE_GCC_ASM_FOR_X87
/* inline assembly for getting and setting the 387 FPU control word on
......
......@@ -121,6 +121,10 @@ extern "C" bool hasnext(Box* o) {
return o->cls->tpp_hasnext(o);
}
extern "C" void _PyObject_Dump(Box* b) noexcept {
dump(b);
}
extern "C" void dump(void* p) {
dumpEx(p, 0);
}
......
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