MCPcopy Index your code
hub / github.com/git/git / packfile_read_object_stream

Function packfile_read_object_stream

packfile.c:2933–2974  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2931}
2932
2933int packfile_read_object_stream(struct odb_read_stream **out,
2934 const struct object_id *oid,
2935 struct packed_git *pack,
2936 off_t offset)
2937{
2938 struct odb_packed_read_stream *stream;
2939 struct pack_window *window = NULL;
2940 enum object_type in_pack_type;
2941 size_t size;
2942
2943 in_pack_type = unpack_object_header(pack, &window, &offset, &size);
2944 unuse_pack(&window);
2945
2946 if (repo_settings_get_big_file_threshold(pack->repo) >= size)
2947 return -1;
2948
2949 switch (in_pack_type) {
2950 default:
2951 return -1; /* we do not do deltas for now */
2952 case OBJ_BAD:
2953 mark_bad_packed_object(pack, oid);
2954 return -1;
2955 case OBJ_COMMIT:
2956 case OBJ_TREE:
2957 case OBJ_BLOB:
2958 case OBJ_TAG:
2959 break;
2960 }
2961
2962 CALLOC_ARRAY(stream, 1);
2963 stream->base.close = close_istream_pack_non_delta;
2964 stream->base.read = read_istream_pack_non_delta;
2965 stream->base.type = in_pack_type;
2966 stream->base.size = size;
2967 stream->z_state = ODB_PACKED_READ_STREAM_UNINITIALIZED;
2968 stream->pack = pack;
2969 stream->pos = offset;
2970
2971 *out = &stream->base;
2972
2973 return 0;
2974}
2975
2976int packfile_store_read_object_stream(struct odb_read_stream **out,
2977 struct packfile_store *store,

Callers 2

verify_packfileFunction · 0.85

Calls 4

unpack_object_headerFunction · 0.85
unuse_packFunction · 0.85
mark_bad_packed_objectFunction · 0.85

Tested by

no test coverage detected