PyObject * Repository_read(Repository *self, PyObject *py_hex) { git_oid oid; git_odb_object *obj; int len; PyObject* tuple; len = py_str_to_git_oid(py_hex, &oid); if (len < 0) return NULL; obj = Repository_read_raw(self->repo, &oid, len); if (obj == NULL) return NULL; tuple = Py_BuildValue( "(ns#)", git_odb_object_type(obj), git_odb_object_data(obj), git_odb_object_size(obj)); git_odb_object_free(obj); return tuple; }
PyObject * Repository_read(Repository *self, PyObject *py_hex) { git_oid oid; git_odb_object *obj; size_t len; PyObject* tuple; len = py_oid_to_git_oid(py_hex, &oid); if (len == 0) return NULL; obj = Repository_read_raw(self->repo, &oid, len); if (obj == NULL) return NULL; tuple = Py_BuildValue( #if PY_MAJOR_VERSION == 2 "(ns#)", #else "(ny#)", #endif git_odb_object_type(obj), git_odb_object_data(obj), git_odb_object_size(obj)); git_odb_object_free(obj); return tuple; }
PyObject * Object_read_raw(Object *self) { const git_oid *oid; git_odb_object *obj; PyObject *aux; oid = git_object_id(self->obj); obj = Repository_read_raw(self->repo->repo, oid, GIT_OID_HEXSZ); if (obj == NULL) return NULL; aux = PyBytes_FromStringAndSize( git_odb_object_data(obj), git_odb_object_size(obj)); git_odb_object_free(obj); return aux; }