aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2011-09-28 15:48:27 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:18:17 -0300
commit52fdebcb0b3822180a374ee821f3503d746656c1 (patch)
tree3fd0757a3a5efb0bc3688838c817bb72f10299da /libshiboken
parentc6b9bb836c98a6bcf922ad6ad4dda60e3383d41b (diff)
Update string usage to new Shiboken::String API.
Diffstat (limited to 'libshiboken')
-rw-r--r--libshiboken/bindingmanager.cpp9
-rw-r--r--libshiboken/conversions.h17
-rw-r--r--libshiboken/sbkpython.h24
3 files changed, 17 insertions, 33 deletions
diff --git a/libshiboken/bindingmanager.cpp b/libshiboken/bindingmanager.cpp
index 15c478e88..26a3e1897 100644
--- a/libshiboken/bindingmanager.cpp
+++ b/libshiboken/bindingmanager.cpp
@@ -21,13 +21,16 @@
*/
#include "basewrapper.h"
-#include <cstddef>
-#include <fstream>
#include "basewrapper_p.h"
#include "bindingmanager.h"
#include "google/dense_hash_map"
#include "sbkdbg.h"
#include "gilstate.h"
+#include "sbkstring.h"
+
+#include <cstddef>
+#include <fstream>
+
namespace Shiboken
{
@@ -241,7 +244,7 @@ PyObject* BindingManager::getOverride(const void* cptr, const char* methodName)
}
}
- PyObject* pyMethodName = SBK_PyString_FromCString(methodName);
+ PyObject* pyMethodName = Shiboken::String::fromCString(methodName);
PyObject* method = PyObject_GetAttr((PyObject*)wrapper, pyMethodName);
if (method && PyMethod_Check(method)
diff --git a/libshiboken/conversions.h b/libshiboken/conversions.h
index 03d914a33..2749c2999 100644
--- a/libshiboken/conversions.h
+++ b/libshiboken/conversions.h
@@ -28,6 +28,7 @@
#include <memory>
#include <typeinfo>
+#include "sbkstring.h"
#include "sbkenum.h"
#include "basewrapper.h"
#include "bindingmanager.h"
@@ -451,19 +452,23 @@ template <typename CString>
struct Converter_CString
{
// Note: 0 is also a const char* in C++, so None is accepted in checkType
- static inline bool checkType(PyObject* pyObj) { return pyObj == Py_None || PyBytes_Check(pyObj); }
- static inline bool isConvertible(PyObject* pyObj) { return pyObj == Py_None || PyBytes_Check(pyObj); }
+ static inline bool checkType(PyObject* pyObj) {
+ return Shiboken::String::check(pyObj);
+ }
+ static inline bool isConvertible(PyObject* pyObj) {
+ return Shiboken::String::convertible(pyObj);
+ }
static inline PyObject* toPython(void* cppobj) { return toPython(reinterpret_cast<CString>(cppobj)); }
static inline PyObject* toPython(CString cppobj)
{
if (!cppobj)
Py_RETURN_NONE;
- return PyBytes_FromString(cppobj);
+ return Shiboken::String::fromCString(cppobj);
}
static inline CString toCpp(PyObject* pyobj) {
if (pyobj == Py_None)
return 0;
- return PyBytes_AS_STRING(pyobj);
+ return Shiboken::String::toCString(pyobj);
}
};
@@ -474,14 +479,14 @@ template <> struct Converter<std::string> : Converter_CString<std::string>
static inline PyObject* toPython(void* cppobj) { return toPython(*reinterpret_cast<std::string*>(cppobj)); }
static inline PyObject* toPython(std::string cppObj)
{
- return PyBytes_FromString(cppObj.c_str());
+ return Shiboken::String::fromCString(cppObj.c_str());
}
static inline std::string toCpp(PyObject* pyobj)
{
if (pyobj == Py_None)
return 0;
- return std::string(PyBytes_AS_STRING(pyobj));
+ return std::string(Shiboken::String::toCString(pyobj));
}
};
diff --git a/libshiboken/sbkpython.h b/libshiboken/sbkpython.h
index 24b70fe6d..84f92d25e 100644
--- a/libshiboken/sbkpython.h
+++ b/libshiboken/sbkpython.h
@@ -38,19 +38,7 @@
#define Py_TPFLAGS_CHECKTYPES 0
#define SBK_NB_BOOL(x) (x).nb_bool
- #define SBK_STR_NAME "bytes"
#define SBK_PyMethod_New PyMethod_New
- #define SBK_PyString_FromCString PyUnicode_FromString
- #define SBK_PyString_FromFormat PyUnicode_FromFormat
- #define SBK_PyString_CompareWithASCIIString PyUnicode_CompareWithASCIIString
-
- // Module MACROS
- #define SBK_MODULE_INIT_ERROR 0
- #define SBK_MODULE_INIT_FUNCTION_BEGIN(ModuleName) \
- extern "C" SBK_EXPORT_MODULE PyObject* PyInit_##ModuleName() {
-
- #define SBK_MODULE_INIT_FUNCTION_END \
- return module; }
#else
// Note: if there wasn't for the old-style classes, only a PyNumber_Check would suffice.
@@ -59,18 +47,6 @@
#define SBK_NB_BOOL(x) (x).nb_nonzero
#define SBK_STR_NAME "str"
#define SBK_PyMethod_New(X, Y) PyMethod_New(X, Y, (PyObject*)Py_TYPE(Y))
- #define SBK_PyString_FromCString PyBytes_FromString
- #define SBK_PyString_FromFormat PyString_FromFormat
- #define SBK_PyString_CompareWithASCIIString(X, Y) strcmp(PyString_AS_STRING(X), Y)
-
- // Module MACROS
- #define SBK_MODULE_INIT_ERROR
- #define SBK_MODULE_INIT_FUNCTION_BEGIN(ModuleName) \
- extern "C" SBK_EXPORT_MODULE void init##ModuleName()
-
- #define SBK_MODULE_INIT_FUNCTION_END \
- }
-
#endif
#endif