Как проживает конвертируемый указатель RVALUE_FROM_PYTHON_STAGE1_DATAC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как проживает конвертируемый указатель RVALUE_FROM_PYTHON_STAGE1_DATA

Сообщение Anonymous »

Вопрос
Можете ли вы дать некоторую информацию Что является ролью RVALUE_FROM_PYTHON_STAGE1_DATA Convertible Pointer и разборка (память управляется) в Boost Python? /> Согласно предыдущей документации как часть преобразования, нам необходимо указать реализацию Construct < /code>. Приведенный ниже фрагмент: < /p>

Код: Выделить всё

template
static void construct(PyObject *pyObject,
boost::python::converter::rvalue_from_python_stage1_data *data)
{
using namespace boost::python;

handle handle(borrowed(pyObject));
using storage_type = converter::rvalue_from_python_storage;

void* storage = reinterpret_cast(data)->storage.bytes;

using iterator = stl_input_iterator;

data->convertible = new (storage) Container(
iterator(object(handle)),   // begin
iterator()                  // end
);
}
< /code>
Что меня путает, вот что на самом деле является конвертируемым, функция или данные? Если это данные, то как RVALUE_FROM_PYTHON_STAGE1_DATA :: Конвертируется, что находится в сфере сбоя? Там я читал, что конвертируемый - это функция, но потом он кажется результатом функции (иначе данные?). < /P>
// Conversions begin by filling in and returning a copy of this
// structure. The process looks up a converter in the rvalue converter
// registry for the target type. It calls the convertible() function
// of each registered converter, passing the source PyObject* as an
// argument, until a non-null result is returned. This result goes in
// the convertible field, and the converter's construct() function is
// stored in the construct field.
Причина, по которой я публикую, заключается в том, что мы получаем уязвимость CWE-401 из сканирования CheckMarx о потенциальной утечке памяти на линии Data-> Convertible = New (хранение) контейнер . /> boost :: python- Возможно автоматически конвертировать из DICT-> std :: map? < /p>

Подробнее здесь: https://stackoverflow.com/questions/797 ... located-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»