summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2003-02-11 20:39:59 (GMT)
committerGuido van Rossum <guido@python.org>2003-02-11 20:39:59 (GMT)
commiteea4718e814b8ec054557aa87d6c122305bf6f0b (patch)
tree9213634b65b978c106f773693578dd4c3211813b
parent6c7438e784a0537260ed9423079e3bb5d61be8c3 (diff)
downloadcpython-eea4718e814b8ec054557aa87d6c122305bf6f0b.zip
cpython-eea4718e814b8ec054557aa87d6c122305bf6f0b.tar.gz
cpython-eea4718e814b8ec054557aa87d6c122305bf6f0b.tar.bz2
Fix from SF #681367: inherit tp_as_buffer. This only applies to C
types -- Python types already inherited this.
-rw-r--r--Misc/NEWS4
-rw-r--r--Objects/typeobject.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 59ad277..ed4f7cf 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -258,6 +258,10 @@ Build
C API
-----
+- A C type that inherits from a base type that defines tp_as_buffer
+ will now inherit the tp_as_buffer pointer if it doesn't define one.
+ (SF #681367)
+
- The PyArg_Parse functions now issue a DeprecationWarning if a float
argument is provided when an integer is specified (this affects the 'b',
'B', 'h', 'H', 'i', and 'l' codes). Future versions of Python will
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 38d5956..baea55a 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -2915,6 +2915,8 @@ PyType_Ready(PyTypeObject *type)
type->tp_as_sequence = base->tp_as_sequence;
if (type->tp_as_mapping == NULL)
type->tp_as_mapping = base->tp_as_mapping;
+ if (type->tp_as_buffer == NULL)
+ type->tp_as_buffer = base->tp_as_buffer;
}
/* Link into each base class's list of subclasses */