summaryrefslogtreecommitdiff
path: root/src/object.c
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2017-12-30 08:09:22 -0800
committerGitHub <noreply@github.com>2017-12-30 08:09:22 -0800
commite14bf97ebbed574dd23dc937a05994074baad91c (patch)
tree7ba7575994ca7d35bb9802a0d113f604faed0f9d /src/object.c
parent083b1a2e2d8d190db02db3db0dad4fa742eccb02 (diff)
parent456e52189c95315028d668f9e508798d490765e2 (diff)
downloadlibgit2-e14bf97ebbed574dd23dc937a05994074baad91c.tar.gz
Merge pull request #4443 from libgit2/ethomson/large_loose_blobs
Inflate large loose blobs
Diffstat (limited to 'src/object.c')
-rw-r--r--src/object.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/object.c b/src/object.c
index 4d069a34c..48f561384 100644
--- a/src/object.c
+++ b/src/object.c
@@ -236,13 +236,22 @@ const char *git_object_type2string(git_otype type)
git_otype git_object_string2type(const char *str)
{
+ if (!str)
+ return GIT_OBJ_BAD;
+
+ return git_object_stringn2type(str, strlen(str));
+}
+
+git_otype git_object_stringn2type(const char *str, size_t len)
+{
size_t i;
- if (!str || !*str)
+ if (!str || !len || !*str)
return GIT_OBJ_BAD;
for (i = 0; i < ARRAY_SIZE(git_objects_table); i++)
- if (!strcmp(str, git_objects_table[i].str))
+ if (*git_objects_table[i].str &&
+ !git__prefixncmp(str, len, git_objects_table[i].str))
return (git_otype)i;
return GIT_OBJ_BAD;