Eliminate Scalar::Util usage from private-Error.pm
[gitweb.git] / perl / Git.xs
index 6ed26a29b89ab1959ef2e62917fb72c137bab39f..226dd4f681ae99bb5c53a4e63394161d92c6ff76 100644 (file)
@@ -111,6 +111,30 @@ CODE:
        free((char **) argv);
 }
 
+
+SV *
+xs_get_object(type, id)
+       char *type;
+       char *id;
+CODE:
+{
+       unsigned char sha1[20];
+       unsigned long size;
+       void *buf;
+
+       if (strlen(id) != 40 || get_sha1_hex(id, sha1) < 0)
+               XSRETURN_UNDEF;
+
+       buf = read_sha1_file(sha1, type, &size);
+       if (!buf)
+               XSRETURN_UNDEF;
+       RETVAL = newSVpvn(buf, size);
+       free(buf);
+}
+OUTPUT:
+       RETVAL
+
+
 char *
 xs_hash_object_pipe(type, fd)
        char *type;