Browse Source
bpo-33583: Add note in PyObject_GC_Resize() doc (GH-7021)
pull/7030/head
INADA Naoki
8 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
2 additions and
1 deletions
-
Doc/c-api/gcsupport.rst
-
Modules/gcmodule.c
|
|
|
@ -49,7 +49,7 @@ Constructors for container types must conform to two rules: |
|
|
|
.. c:function:: TYPE* PyObject_GC_Resize(TYPE, PyVarObject *op, Py_ssize_t newsize) |
|
|
|
|
|
|
|
Resize an object allocated by :c:func:`PyObject_NewVar`. Returns the |
|
|
|
resized object or *NULL* on failure. |
|
|
|
resized object or *NULL* on failure. *op* must not be tracked by the collector yet. |
|
|
|
|
|
|
|
|
|
|
|
.. c:function:: void PyObject_GC_Track(PyObject *op) |
|
|
|
|
|
|
|
@ -1752,6 +1752,7 @@ _PyObject_GC_Resize(PyVarObject *op, Py_ssize_t nitems) |
|
|
|
{ |
|
|
|
const size_t basicsize = _PyObject_VAR_SIZE(Py_TYPE(op), nitems); |
|
|
|
PyGC_Head *g = AS_GC(op); |
|
|
|
assert(!IS_TRACKED(op)); |
|
|
|
if (basicsize > PY_SSIZE_T_MAX - sizeof(PyGC_Head)) |
|
|
|
return (PyVarObject *)PyErr_NoMemory(); |
|
|
|
g = (PyGC_Head *)PyObject_REALLOC(g, sizeof(PyGC_Head) + basicsize); |
|
|
|
|