AAPT fix printf %zd crash on Windows.

There's no printf %zd on Mingw/Cygwin so the verbose
printf crashes aapt.

SDK bugs: 20395, 20986

Change-Id: I5b8ac36749263205a19f1448b1aaca90d5a2e06d
This commit is contained in:
Raphael
2011-10-27 17:01:31 -07:00
parent e87d2da0b4
commit f51125d842
2 changed files with 21 additions and 5 deletions

View File

@ -14,6 +14,14 @@
#include "FileFinder.h"
#include "CacheUpdater.h"
#if HAVE_PRINTF_ZD
# define ZD "%zd"
# define ZD_TYPE ssize_t
#else
# define ZD "%ld"
# define ZD_TYPE long
#endif
#define NOISY(x) // x
// ==========================================================================
@ -566,11 +574,11 @@ static bool applyFileOverlay(Bundle *bundle,
DefaultKeyedVector<AaptGroupEntry, sp<AaptFile> > baseFiles =
baseGroup->getFiles();
for (size_t i=0; i < baseFiles.size(); i++) {
printf("baseFile %zd has flavor %s\n", i,
printf("baseFile " ZD " has flavor %s\n", (ZD_TYPE) i,
baseFiles.keyAt(i).toString().string());
}
for (size_t i=0; i < overlayFiles.size(); i++) {
printf("overlayFile %zd has flavor %s\n", i,
printf("overlayFile " ZD " has flavor %s\n", (ZD_TYPE) i,
overlayFiles.keyAt(i).toString().string());
}
}
@ -584,8 +592,8 @@ static bool applyFileOverlay(Bundle *bundle,
keyAt(overlayGroupIndex));
if (baseFileIndex < UNKNOWN_ERROR) {
if (bundle->getVerbose()) {
printf("found a match (%zd) for overlay file %s, for flavor %s\n",
baseFileIndex,
printf("found a match (" ZD ") for overlay file %s, for flavor %s\n",
(ZD_TYPE) baseFileIndex,
overlayGroup->getLeaf().string(),
overlayFiles.keyAt(overlayGroupIndex).toString().string());
}

View File

@ -8,6 +8,14 @@
#include <utils/ByteOrder.h>
#if HAVE_PRINTF_ZD
# define ZD "%zd"
# define ZD_TYPE ssize_t
#else
# define ZD "%ld"
# define ZD_TYPE long
#endif
#define NOISY(x) //x
void strcpy16_htod(uint16_t* dst, const uint16_t* src)
@ -30,7 +38,7 @@ void printStringPool(const ResStringPool* pool)
str = String8(pool->stringAt(s, &len)).string();
}
printf("String #%zd: %s\n", s, str);
printf("String #" ZD ": %s\n", (ZD_TYPE) s, str);
}
}