Second attempt at getting the PyCallable changes in trunk

Thanks to Daniel Malea for helping test this patch for Linux happiness!

llvm-svn: 185965
This commit is contained in:
Enrico Granata
2013-07-09 20:14:26 +00:00
parent 61a56d7a3a
commit eff81a471a
11 changed files with 1080 additions and 1427 deletions

View File

@@ -1,7 +1,3 @@
#ifndef __cplusplus
#error needs C++ to build these
#endif
// leaving this undefined ensures we will get a linker error if we try to use SBTypeToSWIGWrapper()
// for a type for which we did not specialze this function
template <typename SBClass>
@@ -15,6 +11,38 @@ SBTypeToSWIGWrapper (SBClass& sb_object)
return SBTypeToSWIGWrapper(&sb_object);
}
template <typename SBClass>
PyObject*
SBTypeToSWIGWrapper (const SBClass& sb_object)
{
return SBTypeToSWIGWrapper(&sb_object);
}
template <>
PyObject*
SBTypeToSWIGWrapper (PyObject* py_object)
{
return py_object;
}
template <>
PyObject*
SBTypeToSWIGWrapper (const char* c_str)
{
if (c_str)
return PyString_FromString(c_str);
return NULL;
}
template <>
PyObject*
SBTypeToSWIGWrapper (unsigned int* c_int)
{
if (!c_int)
return NULL;
return PyInt_FromLong(*c_int);
}
template <>
PyObject*
SBTypeToSWIGWrapper (lldb::SBProcess* process_sb)