[Python-checkins] r79410 - python/trunk/Include/pycapsule.h
larry.hastings
python-checkins at python.org
Thu Mar 25 02:23:27 CET 2010
Author: larry.hastings
Date: Thu Mar 25 02:23:27 2010
New Revision: 79410
Log:
Remove extraneous experimental code checked in by accident.
Modified:
python/trunk/Include/pycapsule.h
Modified: python/trunk/Include/pycapsule.h
==============================================================================
--- python/trunk/Include/pycapsule.h (original)
+++ python/trunk/Include/pycapsule.h Thu Mar 25 02:23:27 2010
@@ -50,98 +50,6 @@
PyAPI_FUNC(void *) PyCapsule_Import(const char *name, int no_block);
-
-#define PYTHON_USING_CAPSULE
-
-#define PYCAPSULE_INSTANTIATE_DESTRUCTOR(name, destructor) \
-static void pycapsule_destructor_ ## name(PyObject *ptr) \
-{ \
- void *p = PyCapsule_GetPointer(ptr, name); \
- if (p) { \
- destructor(p); \
- } \
-} \
-
-#define PYCAPSULE_NEW(pointer, name) \
- (PyCapsule_New(pointer, name, capsule_destructor_ ## name))
-
-#define PYCAPSULE_ISVALID(capsule, name) \
- (PyCapsule_IsValid(capsule, name))
-
-#define PYCAPSULE_DEREFERENCE(capsule, name) \
- (PyCapsule_GetPointer(capsule, name))
-
-#define PYCAPSULE_SET(capsule, name, value) \
- (PyCapsule_IsValid(capsule, name) && PyCapsule_SetPointer(capsule, value))
-
-/* module and attribute should be specified as string constants */
-#define PYCAPSULE_IMPORT(module, attribute) \
- (PyCapsule_Import(module "." attribute, 0))
-
-
-/* begin public-domain code */
-/*
-** This code was written by Larry Hastings,
-** and is dedicated to the public domain.
-** It's designed to make it easy to switch
-** from CObject to Capsule objects without losing
-** backwards compatibility with prior versions
-** of CPython. You're encouraged to copy this code
-** (including this documentation) into your
-** Python C extension.
-**
-** To use:
-** * #define a name for the pointer you store in
-** the CObject. If you make the CObject available
-** as part of your module's API, this name should
-** be "modulename.attributename", and it should be
-** considered part of your API (so put it in your
-** header file).
-** * Specify a PYCAPSULE_INSTANTIATE_DESTRUCTOR(), in
-** every C file that creates these CObjects. This
-** is where you specify your object's destructor.
-** * Change all calls to CObject_FromVoidPtr()
-** and CObject_FromVoidPointerAndDesc() into
-** PYCAPSULE_NEW() calls.
-** * Change all calls to PyCObject_AsVoidPtr()
-** into PYCAPSULE_DEREFERENCE() calls.
-** * Change all calls to PyCObject_SetVoidPtr()
-** into PYCAPSULE_SET() calls.
-** * Change all calls to PyCObject_Import()
-** into PYCAPSULE_IMPORT() calls. Note that
-** the two arguments to PYCAPSULE_IMPORT()
-** should both be string constants; that is,
-** you should call
-** PYCAPSULE_IMPORT("modulename", "attributename"),
-** not PYCAPSULE_IMPORT(charstar1, charstar2).
-*/
-#ifndef PYTHON_USING_CAPSULE
-
-#define PYCAPSULE_INSTANTIATE_DESTRUCTOR(name, destructor) \
-static void pycapsule_destructor_ ## name(void *ptr) \
-{ \
- destructor(p); \
-} \
-
-#define PYCAPSULE_NEW(pointer, name) \
- (PyCObject_FromVoidPtr(pointer, pycapsule_destructor_ ## name))
-
-#define PYCAPSULE_ISVALID(capsule, name) \
- (PyCObject_Check(capsule))
-
-#define PYCAPSULE_DEREFERENCE(capsule, name) \
- (PyCObject_AsVoidPtr(capsule))
-
-#define PYCAPSULE_SET(capsule, name, value) \
- (PyCObject_SetVoidPtr(capsule, value))
-
-/* module and attribute should be specified as string constants */
-#define PYCAPSULE_IMPORT(module, attribute) \
- (PyCObject_Import(module, attribute))
-
-#endif /* PYTHON_USING_CAPSULE */
-/* end public-domain code */
-
#ifdef __cplusplus
}
#endif
More information about the Python-checkins
mailing list