Ramsay Jones [off-list ref] writes:
Despite the subject line, this should be useful on any system for
which uint32_t is defined to be unsigned long rather than
unsigned int. (and where the return type of htonl() is similarly
defined).
Correct. Perhaps "Use %PRIu32 and such to print integers of fixed length"?
The only worry I have with this patch is with systems with not-so-ANSI
headers; as you noticed, we already have:
#ifndef PRIuMAX
#define PRIuMAX "llu"
#endif
in git-compat-util.h, which does include <inttypes.h>, so PRIu32 and
friends could be problematic on these platforms.
quoted hunk
@@ -1718,7 +1720,8 @@ static int add_ref_tag(const char *path, const unsigned char *sha1, int flag, vo
static void prepare_pack(int window, int depth)
{
struct object_entry **delta_list;
- uint32_t i, n, nr_deltas;
+ uint32_t i, nr_deltas;
+ unsigned n;
Hmm. Is this change necessary?
Junio C Hamano wrote:
Ramsay Jones [off-list ref] writes:
quoted
Despite the subject line, this should be useful on any system for
which uint32_t is defined to be unsigned long rather than
unsigned int. (and where the return type of htonl() is similarly
defined).
Correct. Perhaps "Use %PRIu32 and such to print integers of fixed length"?
The only worry I have with this patch is with systems with not-so-ANSI
headers; as you noticed, we already have:
#ifndef PRIuMAX
#define PRIuMAX "llu"
#endif
in git-compat-util.h, which does include <inttypes.h>, so PRIu32 and
friends could be problematic on these platforms.
Yes, I had the same worry, since I did not know which system(s) required
the above #ifdef and, perhaps more important, why. Having said that, I
suspect (hope?) that the affected system(s) are somewhat rare. I guess
it would not be long before someone complained otherwise...
[Note: I can't just blame the above #ifdef because I don't have a real
git repo ;-) - it would simply blame me!]
quoted
@@ -1718,7 +1720,8 @@ static int add_ref_tag(const char *path, const unsigned char *sha1, int flag, vo
static void prepare_pack(int window, int depth)
{
struct object_entry **delta_list;
- uint32_t i, n, nr_deltas;
+ uint32_t i, nr_deltas;
+ unsigned n;
Hmm. Is this change necessary?
Yes, otherwise:
builtin-pack-objects.c: In function `prepare_pack':
builtin-pack-objects.c:1760: warning: passing arg 2 of `find_deltas' from incompatible pointer type
make: *** [builtin-pack-objects.o] Error 1
Note that ll_find_deltas() is #defined to find_deltas() in the #else arm
of #ifdef THREADED_DELTA_SEARCH, and find_deltas() takes an "unsigned *"
ATB,
Ramsay Jones
Ramsay Jones [off-list ref] writes:
Junio C Hamano wrote:
...
quoted
quoted
@@ -1718,7 +1720,8 @@ static int add_ref_tag(const char *path, const unsigned char *sha1, int flag, vo
static void prepare_pack(int window, int depth)
{
struct object_entry **delta_list;
- uint32_t i, n, nr_deltas;
+ uint32_t i, nr_deltas;
+ unsigned n;
Hmm. Is this change necessary?
Yes, otherwise:
builtin-pack-objects.c: In function `prepare_pack':
builtin-pack-objects.c:1760: warning: passing arg 2 of `find_deltas' from incompatible pointer type
make: *** [builtin-pack-objects.o] Error 1
Note that ll_find_deltas() is #defined to find_deltas() in the #else arm
of #ifdef THREADED_DELTA_SEARCH, and find_deltas() takes an "unsigned *"
Ah, I missed that. So it is not just warning squelch but is a bugfix in
case unsigned and uint32_t are of different sizes.
Junio C Hamano wrote:
Ramsay Jones [off-list ref] writes:
quoted
Junio C Hamano wrote:
...
quoted
quoted
@@ -1718,7 +1720,8 @@ static int add_ref_tag(const char *path, const unsigned char *sha1, int flag, vo
static void prepare_pack(int window, int depth)
{
struct object_entry **delta_list;
- uint32_t i, n, nr_deltas;
+ uint32_t i, nr_deltas;
+ unsigned n;
Hmm. Is this change necessary?
Yes, otherwise:
builtin-pack-objects.c: In function `prepare_pack':
builtin-pack-objects.c:1760: warning: passing arg 2 of `find_deltas' from incompatible pointer type
make: *** [builtin-pack-objects.o] Error 1
Note that ll_find_deltas() is #defined to find_deltas() in the #else arm
of #ifdef THREADED_DELTA_SEARCH, and find_deltas() takes an "unsigned *"
Ah, I missed that. So it is not just warning squelch but is a bugfix in
case unsigned and uint32_t are of different sizes.
Yes, but I didn't think about that when I "fixed" it ;-)
ATB,
Ramsay Jones