예제 #1
0
파일: blob.c 프로젝트: bnoordhuis/libgit2
const void *git_blob_rawcontent(git_blob *blob)
{
	assert(blob);
	
	if (blob->content.data != NULL)
		return blob->content.data;

	if (blob->object.in_memory)
		return NULL;

	if (!blob->object.source.open && git_object__source_open((git_object *)blob) < GIT_SUCCESS)
		return NULL;

	return blob->object.source.raw.data;
}
예제 #2
0
파일: commit.c 프로젝트: marvil07/libgit2
int git_commit__parse_full(git_commit *commit)
{
	int error;

	if (commit->full_parse)
		return GIT_SUCCESS;

	if ((error = git_object__source_open((git_object *)commit)) < GIT_SUCCESS)
		return error;

	error = commit_parse_buffer(commit,
			commit->object.source.raw.data, commit->object.source.raw.len, COMMIT_FULL_PARSE);

	git_object__source_close((git_object *)commit);

	commit->full_parse = 1;
	return error;
}