コード例 #1
0
ファイル: odb_pack.c プロジェクト: Darthholi/WDX_GitCommander
static int pack_backend__exists(git_odb_backend *backend, const git_oid *oid)
{
	struct git_pack_entry e;
	int error;

	error = pack_entry_find(&e, (struct pack_backend *)backend, oid);

	if (error != GIT_ENOTFOUND)
		return error == 0;

	if ((error = pack_backend__refresh(backend)) < 0) {
		giterr_clear();
		return (int)false;
	}

	return pack_entry_find(&e, (struct pack_backend *)backend, oid) == 0;
}
コード例 #2
0
ファイル: odb_pack.c プロジェクト: Darthholi/WDX_GitCommander
static int pack_backend__read_header_internal(
	size_t *len_p, git_otype *type_p,
	struct git_odb_backend *backend, const git_oid *oid)
{
	struct git_pack_entry e;
	int error;

	assert(len_p && type_p && backend && oid);

	if ((error = pack_entry_find(&e, (struct pack_backend *)backend, oid)) < 0)
		return error;

	return git_packfile_resolve_header(len_p, type_p, e.p, e.offset);
}
コード例 #3
0
ファイル: odb_pack.c プロジェクト: fatlotus/nodegit
int pack_backend__read(void **buffer_p, size_t *len_p, git_otype *type_p, git_odb_backend *backend, const git_oid *oid)
{
	struct git_pack_entry e;
	git_rawobj raw;
	int error;

	if ((error = pack_entry_find(&e, (struct pack_backend *)backend, oid)) < GIT_SUCCESS)
		return git__rethrow(error, "Failed to read pack backend");

	if ((error = git_packfile_unpack(&raw, e.p, &e.offset)) < GIT_SUCCESS)
		return git__rethrow(error, "Failed to read pack backend");

	*buffer_p = raw.data;
	*len_p = raw.len;
	*type_p = raw.type;

	return GIT_SUCCESS;
}
コード例 #4
0
ファイル: odb_pack.c プロジェクト: Darthholi/WDX_GitCommander
static int pack_backend__read_internal(
	void **buffer_p, size_t *len_p, git_otype *type_p,
	git_odb_backend *backend, const git_oid *oid)
{
	struct git_pack_entry e;
	git_rawobj raw;
	int error;

	if ((error = pack_entry_find(&e, (struct pack_backend *)backend, oid)) < 0 ||
		(error = git_packfile_unpack(&raw, e.p, &e.offset)) < 0)
		return error;

	*buffer_p = raw.data;
	*len_p = raw.len;
	*type_p = raw.type;

	return 0;
}
コード例 #5
0
ファイル: odb_pack.c プロジェクト: fatlotus/nodegit
int pack_backend__exists(git_odb_backend *backend, const git_oid *oid)
{
	struct git_pack_entry e;
	return pack_entry_find(&e, (struct pack_backend *)backend, oid) == GIT_SUCCESS;
}