For Win32, don't cast ssize_t while printing
Bug: http://b/69933068
This is a partial revert of
https://android-review.googlesource.com/c/platform/frameworks/base/+/109433
so we can use Clang for windows cross compilation.
Clang does not allow a cast to 'signed size_t' and both Clang and
current MinGW accept a ssize_t to the '%zd' format specifier.
Test: m native-host, m native-host-cross with both MinGW and Clang
Change-Id: I5366622b91be1433f6c533c55a9ae429b57c7a27
diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp
index 52b93a9..06eb84d 100644
--- a/tools/aapt/ResourceTable.cpp
+++ b/tools/aapt/ResourceTable.cpp
@@ -18,13 +18,10 @@
#include <utils/TypeHelpers.h>
#include <stdarg.h>
-// SSIZE: mingw does not have signed size_t == ssize_t.
// STATUST: mingw does seem to redefine UNKNOWN_ERROR from our enum value, so a cast is necessary.
#if !defined(_WIN32)
-# define SSIZE(x) x
# define STATUST(x) x
#else
-# define SSIZE(x) (signed size_t)x
# define STATUST(x) (status_t)x
#endif
@@ -3040,7 +3037,7 @@
sp<AaptFile> strFile = p->getTypeStringsData();
ssize_t amt = data->writeData(strFile->getData(), strFile->getSize());
if (kPrintStringMetrics) {
- fprintf(stderr, "**** type strings: %zd\n", SSIZE(amt));
+ fprintf(stderr, "**** type strings: %zd\n", amt);
}
strAmt += amt;
if (amt < 0) {
@@ -3050,7 +3047,7 @@
strFile = p->getKeyStringsData();
amt = data->writeData(strFile->getData(), strFile->getSize());
if (kPrintStringMetrics) {
- fprintf(stderr, "**** key strings: %zd\n", SSIZE(amt));
+ fprintf(stderr, "**** key strings: %zd\n", amt);
}
strAmt += amt;
if (amt < 0) {
@@ -3322,8 +3319,8 @@
ssize_t amt = (dest->getSize()-strStart);
strAmt += amt;
if (kPrintStringMetrics) {
- fprintf(stderr, "**** value strings: %zd\n", SSIZE(amt));
- fprintf(stderr, "**** total strings: %zd\n", SSIZE(strAmt));
+ fprintf(stderr, "**** value strings: %zd\n", amt);
+ fprintf(stderr, "**** total strings: %zd\n", amt);
}
for (pi=0; pi<flatPackages.size(); pi++) {
diff --git a/tools/aapt/StringPool.cpp b/tools/aapt/StringPool.cpp
index 866291a..37b61bf 100644
--- a/tools/aapt/StringPool.cpp
+++ b/tools/aapt/StringPool.cpp
@@ -12,13 +12,6 @@
#include "ResourceTable.h"
-// SSIZE: mingw does not have signed size_t == ssize_t.
-#if !defined(_WIN32)
-# define SSIZE(x) x
-#else
-# define SSIZE(x) (signed size_t)x
-#endif
-
// Set to true for noisy debug output.
static const bool kIsDebug = false;
@@ -202,7 +195,7 @@
if (kIsDebug) {
printf("Adding string %s to pool: pos=%zd eidx=%zd vidx=%zd\n",
- String8(value).string(), SSIZE(pos), SSIZE(eidx), SSIZE(vidx));
+ String8(value).string(), pos, eidx, vidx);
}
return pos;
@@ -598,7 +591,7 @@
const Vector<size_t>* indices = offsetsForString(val);
ssize_t res = indices != NULL && indices->size() > 0 ? indices->itemAt(0) : -1;
if (kIsDebug) {
- printf("Offset for string %s: %zd (%s)\n", String8(val).string(), SSIZE(res),
+ printf("Offset for string %s: %zd (%s)\n", String8(val).string(), res,
res >= 0 ? String8(mEntries[mEntryArray[res]].value).string() : String8());
}
return res;
diff --git a/tools/aapt/XMLNode.cpp b/tools/aapt/XMLNode.cpp
index 15ec4af..861efd5 100644
--- a/tools/aapt/XMLNode.cpp
+++ b/tools/aapt/XMLNode.cpp
@@ -16,13 +16,10 @@
#define O_BINARY 0
#endif
-// SSIZE: mingw does not have signed size_t == ssize_t.
// STATUST: mingw does seem to redefine UNKNOWN_ERROR from our enum value, so a cast is necessary.
#if !defined(_WIN32)
-# define SSIZE(x) x
# define STATUST(x) x
#else
-# define SSIZE(x) (signed size_t)x
# define STATUST(x) (status_t)x
#endif
@@ -1426,7 +1423,7 @@
idx = outPool->add(attr.name);
if (kIsDebug) {
printf("Adding attr %s (resid 0x%08x) to pool: idx=%zd\n",
- String8(attr.name).string(), id, SSIZE(idx));
+ String8(attr.name).string(), id, idx);
}
if (id != 0) {
while ((ssize_t)outResIds->size() <= idx) {
@@ -1437,7 +1434,7 @@
}
attr.namePoolIdx = idx;
if (kIsDebug) {
- printf("String %s offset=0x%08zd\n", String8(attr.name).string(), SSIZE(idx));
+ printf("String %s offset=0x%08zd\n", String8(attr.name).string(), idx);
}
}
}