Fixed several 64-bit porting issues

1. Use "%zu" instead of "%d" for size_t in printf
2. Variable precision specifier (eg. "%.*s") in printf should be of type int.
   (iov_len is size_t which is 64-bit when compiled with -m64)
3. Use PRId64 instead of "%lld" to print variables of type int64_t

Change-Id: I2be40a6514b5dffa0038d62b9bccc3401b8756e6
This commit is contained in:
Andrew Hsieh 2012-02-27 18:50:55 -08:00
parent a05349407d
commit 0ae8c14b4b
4 changed files with 11 additions and 7 deletions

View File

@ -183,7 +183,7 @@ size_t BlobCache::getFdCount() const {
status_t BlobCache::flatten(void* buffer, size_t size, int fds[], size_t count) status_t BlobCache::flatten(void* buffer, size_t size, int fds[], size_t count)
const { const {
if (count != 0) { if (count != 0) {
ALOGE("flatten: nonzero fd count: %d", count); ALOGE("flatten: nonzero fd count: %zu", count);
return BAD_VALUE; return BAD_VALUE;
} }
@ -234,7 +234,7 @@ status_t BlobCache::unflatten(void const* buffer, size_t size, int fds[],
mCacheEntries.clear(); mCacheEntries.clear();
if (count != 0) { if (count != 0) {
ALOGE("unflatten: nonzero fd count: %d", count); ALOGE("unflatten: nonzero fd count: %zu", count);
return BAD_VALUE; return BAD_VALUE;
} }

View File

@ -199,7 +199,7 @@ void printHexData(int32_t indent, const void *buf, size_t length,
if ((int32_t)length < 0) { if ((int32_t)length < 0) {
if (singleLineBytesCutoff < 0) func(cookie, "\n"); if (singleLineBytesCutoff < 0) func(cookie, "\n");
char buf[64]; char buf[64];
sprintf(buf, "(bad length: %d)", length); sprintf(buf, "(bad length: %zu)", length);
func(cookie, buf); func(cookie, buf);
return; return;
} }

View File

@ -57,8 +57,8 @@ protected:
virtual status_t writeLines(const struct iovec& vec, size_t N) virtual status_t writeLines(const struct iovec& vec, size_t N)
{ {
//android_writevLog(&vec, N); <-- this is now a no-op //android_writevLog(&vec, N); <-- this is now a no-op
if (N != 1) ALOGI("WARNING: writeLines N=%d\n", N); if (N != 1) ALOGI("WARNING: writeLines N=%zu\n", N);
ALOGI("%.*s", vec.iov_len, (const char*) vec.iov_base); ALOGI("%.*s", (int)vec.iov_len, (const char*) vec.iov_base);
return NO_ERROR; return NO_ERROR;
} }
}; };

View File

@ -20,6 +20,10 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
/* for PRId64 */
#define __STDC_FORMAT_MACROS 1
#include <inttypes.h>
#include <utils/Log.h> #include <utils/Log.h>
#include <utils/Errors.h> #include <utils/Errors.h>
#include <utils/StopWatch.h> #include <utils/StopWatch.h>
@ -39,11 +43,11 @@ StopWatch::~StopWatch()
{ {
nsecs_t elapsed = elapsedTime(); nsecs_t elapsed = elapsedTime();
const int n = mNumLaps; const int n = mNumLaps;
ALOGD("StopWatch %s (us): %lld ", mName, ns2us(elapsed)); ALOGD("StopWatch %s (us): %" PRId64 " ", mName, ns2us(elapsed));
for (int i=0 ; i<n ; i++) { for (int i=0 ; i<n ; i++) {
const nsecs_t soFar = mLaps[i].soFar; const nsecs_t soFar = mLaps[i].soFar;
const nsecs_t thisLap = mLaps[i].thisLap; const nsecs_t thisLap = mLaps[i].thisLap;
ALOGD(" [%d: %lld, %lld]", i, ns2us(soFar), ns2us(thisLap)); ALOGD(" [%d: %" PRId64 ", %" PRId64, i, ns2us(soFar), ns2us(thisLap));
} }
} }