| #include "string.hpp" |
| |
| |
| namespace ittapi |
| { |
| namespace pyext |
| { |
| |
| string::~string() |
| { |
| if (m_is_owner) |
| { |
| PyMem_Free(const_cast<pointer>(m_str)); |
| } |
| } |
| |
| string string::from_unicode(PyObject* str) |
| { |
| if (!PyUnicode_Check(str)) |
| { |
| return string(nullptr, false); |
| } |
| |
| #if defined(_WIN32) |
| pointer str_ptr = PyUnicode_AsWideCharString(str, nullptr); |
| const bool is_owner = true; |
| #else |
| const_pointer str_ptr = PyUnicode_AsUTF8(str); |
| const bool is_owner = false; |
| #endif |
| |
| return string(str_ptr, is_owner); |
| } |
| |
| } // namespace pyext |
| } // namespace ittapi |