object.c: Move to new error handling mechanism

This commit is contained in:
Jakob Pfender 2011-05-18 12:19:48 +02:00 committed by Vicent Marti
parent 0be7f000a5
commit 75eb97fed0

View File

@ -86,7 +86,7 @@ static int create_object(git_object **object_out, git_otype type)
break; break;
default: default:
return GIT_EINVALIDTYPE; return git__throw(GIT_EINVALIDTYPE, "Failed to create object. Given type is invalid");
} }
object->type = type; object->type = type;
@ -106,7 +106,7 @@ int git_object_lookup(git_object **object_out, git_repository *repo, const git_o
object = git_cache_get(&repo->objects, id); object = git_cache_get(&repo->objects, id);
if (object != NULL) { if (object != NULL) {
if (type != GIT_OBJ_ANY && type != object->type) if (type != GIT_OBJ_ANY && type != object->type)
return GIT_EINVALIDTYPE; return git__throw(GIT_EINVALIDTYPE, "Failed to lookup object. Given type does not match found type");
*object_out = object; *object_out = object;
return GIT_SUCCESS; return GIT_SUCCESS;
@ -114,17 +114,17 @@ int git_object_lookup(git_object **object_out, git_repository *repo, const git_o
error = git_odb_read(&odb_obj, repo->db, id); error = git_odb_read(&odb_obj, repo->db, id);
if (error < GIT_SUCCESS) if (error < GIT_SUCCESS)
return error; return git__rethrow(error, "Failed to lookup object");
if (type != GIT_OBJ_ANY && type != odb_obj->raw.type) { if (type != GIT_OBJ_ANY && type != odb_obj->raw.type) {
git_odb_object_close(odb_obj); git_odb_object_close(odb_obj);
return GIT_EINVALIDTYPE; return git__throw(GIT_EINVALIDTYPE, "Failed to lookup object. Given type does not match found type");
} }
type = odb_obj->raw.type; type = odb_obj->raw.type;
if ((error = create_object(&object, type)) < GIT_SUCCESS) if ((error = create_object(&object, type)) < GIT_SUCCESS)
return error; return git__rethrow(error, "Failed to lookup object");
/* Initialize parent object */ /* Initialize parent object */
git_oid_cpy(&object->cached.oid, id); git_oid_cpy(&object->cached.oid, id);
@ -155,7 +155,7 @@ int git_object_lookup(git_object **object_out, git_repository *repo, const git_o
if (error < GIT_SUCCESS) { if (error < GIT_SUCCESS) {
git_object__free(object); git_object__free(object);
return error; return git__rethrow(error, "Failed to lookup object");
} }
*object_out = git_cache_try_store(&repo->objects, object); *object_out = git_cache_try_store(&repo->objects, object);