提交 ebea9dd4 编写于 作者: S Shawn O. Pearce

Use fixed-size integers when writing out the index in fast-import.

Currently the pack .idx file format uses 32-bit unsigned integers
for the fan-out table and the object offsets.  We had previously
defined these as 'unsigned int', but not every system will define
that type to be a 32 bit value.  To ensure maximum portability we
should always use 'uint32_t'.
Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
上级 566f4425
......@@ -672,7 +672,7 @@ static char* create_index(void)
struct sha1file *f;
struct object_entry **idx, **c, **last, *e;
struct object_entry_pool *o;
unsigned int array[256];
uint32_t array[256];
int i, idx_fd;
/* Build the sorted table of object IDs. */
......@@ -709,7 +709,7 @@ static char* create_index(void)
sha1write(f, array, 256 * sizeof(int));
SHA1_Init(&ctx);
for (c = idx; c != last; c++) {
unsigned int offset = htonl((*c)->offset);
uint32_t offset = htonl((*c)->offset);
sha1write(f, &offset, 4);
sha1write(f, (*c)->sha1, sizeof((*c)->sha1));
SHA1_Update(&ctx, (*c)->sha1, 20);
......
......@@ -46,6 +46,7 @@
#include <arpa/inet.h>
#include <netdb.h>
#include <pwd.h>
#include <stdint.h>
#include <grp.h>
#ifndef NO_ICONV
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册