class PyCall::PyPtr
Constants
- NULL
Public Class Methods
decref(p1)
click to toggle source
static VALUE pycall_pyptr_s_decref(VALUE klass, VALUE pyptr) { return pycall_pyptr_decref(pyptr); }
incref(p1)
click to toggle source
static VALUE pycall_pyptr_s_incref(VALUE klass, VALUE pyptr) { return pycall_pyptr_incref(pyptr); }
new(p1)
click to toggle source
static VALUE pycall_pyptr_initialize(VALUE pyptr, VALUE val) { VALUE addr; PyObject *pyobj; addr = rb_check_to_integer(val, "to_int"); if (NIL_P(addr)) { rb_raise(rb_eTypeError, "Invalid PyObject address: %"PRIsVALUE, val); } pyobj = (PyObject *)NUM2PTR(addr); DATA_PTR(pyptr) = pyobj; return pyptr; }
sizeof(p1)
click to toggle source
static VALUE pycall_pyptr_s_sizeof(VALUE klass, VALUE pyptr) { size_t size; PyObject *pyobj; pyobj = try_get_pyobj_ptr(pyptr); if (pyobj == NULL) return Qnil; size = _PySys_GetSizeOf(pyobj); return SIZET2NUM(size); }
Public Instance Methods
==(p1)
click to toggle source
static VALUE pycall_pyptr_eq(VALUE obj, VALUE other) { PyObject* pyobj; PyObject* pyobj_other; if (!is_pycall_pyptr(other)) return Qfalse; pyobj = get_pyobj_ptr(obj); pyobj_other = get_pyobj_ptr(other); return pyobj == pyobj_other ? Qtrue : Qfalse; }
__address__()
click to toggle source
static VALUE pycall_pyptr_get_ptr_address(VALUE obj) { PyObject* pyobj = get_pyobj_ptr(obj); return PTR2NUM(pyobj); }
__ob_refcnt__()
click to toggle source
static VALUE pycall_pyptr_get_ob_refcnt(VALUE obj) { PyObject* pyobj = get_pyobj_ptr(obj); if (pyobj) return SSIZET2NUM(pyobj->ob_refcnt); return Qnil; }
__ob_type__()
click to toggle source
static VALUE pycall_pyptr_get_ob_type(VALUE obj) { PyObject* pyobj = get_pyobj_ptr(obj); if (pyobj) { VALUE res; if (Py_TYPE(pyobj) == Py_API(PyInstance_Type)) res = pycall_pytype_to_ruby((PyObject *)((PyInstanceObject *)pyobj)->in_class); else res = pycall_pytype_to_ruby((PyObject *)pyobj->ob_type); return res; } return Qnil; }
class()
click to toggle source
static VALUE pycall_pyptr_class(VALUE obj) { return CLASS_OF(obj); }
hash()
click to toggle source
static VALUE pycall_pyptr_hash(VALUE obj) { PyObject *pyobj = get_pyobj_ptr(obj); Py_hash_t h; if (!pyobj) return PTR2NUM(pyobj); h = PyObject_Hash(pyobj); if (h == -1) { Py_API(PyErr_Clear)(); return PTR2NUM(pyobj); } return SSIZET2NUM(h); }
inspect()
click to toggle source
static VALUE pycall_pyptr_inspect(VALUE obj) { VALUE cname, str; PyObject* pyobj = get_pyobj_ptr(obj); cname = rb_class_name(CLASS_OF(obj)); str = rb_sprintf("#<%"PRIsVALUE":%p type=%s addr=%p>", cname, (void*)obj, Py_TYPE(pyobj)->tp_name, pyobj); OBJ_INFECT(str, obj); return str; }
kind_of?(p1)
click to toggle source
static VALUE pycall_pyptr_is_kind_of(VALUE obj, VALUE klass) { PyObject* pyobj = get_pyobj_ptr(obj); VALUE res; if (is_pycall_pyptr(klass)) { int res; PyObject* pyobj_klass = get_pyobj_ptr(klass); res = Py_API(PyObject_IsInstance)(pyobj, pyobj_klass); if (res >= 0) { return res ? Qtrue : Qfalse; } Py_API(PyErr_Clear)(); } klass = class_or_module_required(klass); res = rb_class_inherited_p(CLASS_OF(obj), klass); return NIL_P(res) ? Qfalse : res; }
Also aliased as: is_a?
nil?()
click to toggle source
static VALUE pycall_pyptr_is_nil(VALUE obj) { PyObject* pyobj = get_pyobj_ptr(obj); return (pyobj == Py_API(_Py_NoneStruct)) || (pyobj == NULL) ? Qtrue : Qfalse; }
none?()
click to toggle source
static VALUE pycall_pyptr_is_none(VALUE obj) { PyObject* pyobj = get_pyobj_ptr(obj); return pyobj == Py_API(_Py_NoneStruct) ? Qtrue : Qfalse; }
null?()
click to toggle source
static VALUE pycall_pyptr_is_null(VALUE obj) { PyObject* pyobj = get_pyobj_ptr(obj); return pyobj ? Qfalse : Qtrue; }
object_id()
click to toggle source
static VALUE pycall_pyptr_object_id(VALUE obj) { return rb_obj_id(obj); }