コード例 #1
0
ファイル: py-progspace.c プロジェクト: ibuclaw/gdb
static PyObject *
pspy_new (PyTypeObject *type, PyObject *args, PyObject *keywords)
{
  gdbpy_ref<pspace_object> self ((pspace_object *) type->tp_alloc (type, 0));

  if (self != NULL)
    {
      if (!pspy_initialize (self.get ()))
	return NULL;
    }

  return (PyObject *) self.release ();
}
コード例 #2
0
ファイル: py-progspace.c プロジェクト: eepp/binutils-gdb
static PyObject *
pspy_new (PyTypeObject *type, PyObject *args, PyObject *keywords)
{
    pspace_object *self = (pspace_object *) type->tp_alloc (type, 0);

    if (self)
    {
        if (!pspy_initialize (self))
        {
            Py_DECREF (self);
            return NULL;
        }
    }

    return (PyObject *) self;
}
コード例 #3
0
ファイル: py-progspace.c プロジェクト: ibuclaw/gdb
PyObject *
pspace_to_pspace_object (struct program_space *pspace)
{
  gdbpy_ref<pspace_object> object
    ((pspace_object *) program_space_data (pspace, pspy_pspace_data_key));
  if (object == NULL)
    {
      object.reset (PyObject_New (pspace_object, &pspace_object_type));
      if (object != NULL)
	{
	  if (!pspy_initialize (object.get ()))
	    return NULL;

	  object->pspace = pspace;
	  set_program_space_data (pspace, pspy_pspace_data_key, object.get ());
	}
    }

  return (PyObject *) object.release ();
}
コード例 #4
0
ファイル: py-progspace.c プロジェクト: eepp/binutils-gdb
PyObject *
pspace_to_pspace_object (struct program_space *pspace)
{
    pspace_object *object;

    object = (pspace_object *) program_space_data (pspace, pspy_pspace_data_key);
    if (!object)
    {
        object = PyObject_New (pspace_object, &pspace_object_type);
        if (object)
        {
            if (!pspy_initialize (object))
            {
                Py_DECREF (object);
                return NULL;
            }

            object->pspace = pspace;
            set_program_space_data (pspace, pspy_pspace_data_key, object);
        }
    }

    return (PyObject *) object;
}