28 lines
839 B
Text
28 lines
839 B
Text
|
/**
|
||
|
* PANDA 3D SOFTWARE
|
||
|
* Copyright (c) Carnegie Mellon University. All rights reserved.
|
||
|
*
|
||
|
* All use of this software is subject to the terms of the revised BSD
|
||
|
* license. You should have received a copy of this license along
|
||
|
* with this source code in a file named "LICENSE."
|
||
|
*
|
||
|
* @file callbackObject_ext.I
|
||
|
* @author rdb
|
||
|
* @date 2015-02-25
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* This static constructor is merely provided so that interrogate can
|
||
|
* automatically coerce Python functions when passing them to a C++ function
|
||
|
* that accepts a CallbackObject.
|
||
|
*/
|
||
|
INLINE PT(CallbackObject) Extension<CallbackObject>::
|
||
|
make(PyObject *function) {
|
||
|
if (function != Py_None && !PyCallable_Check(function)) {
|
||
|
PyErr_SetString(PyExc_TypeError, "expected callable or None");
|
||
|
return nullptr;
|
||
|
} else {
|
||
|
return new PythonCallbackObject(function);
|
||
|
}
|
||
|
}
|