Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c3bef85 authored by Raphael's avatar Raphael Committed by Raphael Moll
Browse files

Merge "AAPT fix printf %zd crash on Windows". Do not merge.

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

SDK bugs: 20395, 20986

Bug: 5742142

(cherry picked from commit f51125d8)

Change-Id: I7545734ce8ce4a1f3e95f8a255daa8a909f870a1
parent a5cbf023
Loading
Loading
Loading
Loading
+12 −4
Original line number Original line Diff line number Diff line
@@ -14,6 +14,14 @@
#include "FileFinder.h"
#include "FileFinder.h"
#include "CacheUpdater.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
#define NOISY(x) // x


// ==========================================================================
// ==========================================================================
@@ -566,11 +574,11 @@ static bool applyFileOverlay(Bundle *bundle,
                        DefaultKeyedVector<AaptGroupEntry, sp<AaptFile> > baseFiles =
                        DefaultKeyedVector<AaptGroupEntry, sp<AaptFile> > baseFiles =
                                baseGroup->getFiles();
                                baseGroup->getFiles();
                        for (size_t i=0; i < baseFiles.size(); i++) {
                        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());
                                    baseFiles.keyAt(i).toString().string());
                        }
                        }
                        for (size_t i=0; i < overlayFiles.size(); i++) {
                        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());
                                    overlayFiles.keyAt(i).toString().string());
                        }
                        }
                    }
                    }
@@ -584,8 +592,8 @@ static bool applyFileOverlay(Bundle *bundle,
                                keyAt(overlayGroupIndex));
                                keyAt(overlayGroupIndex));
                        if (baseFileIndex < UNKNOWN_ERROR) {
                        if (baseFileIndex < UNKNOWN_ERROR) {
                            if (bundle->getVerbose()) {
                            if (bundle->getVerbose()) {
                                printf("found a match (%zd) for overlay file %s, for flavor %s\n",
                                printf("found a match (" ZD ") for overlay file %s, for flavor %s\n",
                                        baseFileIndex,
                                        (ZD_TYPE) baseFileIndex,
                                        overlayGroup->getLeaf().string(),
                                        overlayGroup->getLeaf().string(),
                                        overlayFiles.keyAt(overlayGroupIndex).toString().string());
                                        overlayFiles.keyAt(overlayGroupIndex).toString().string());
                            }
                            }
+9 −1
Original line number Original line Diff line number Diff line
@@ -8,6 +8,14 @@


#include <utils/ByteOrder.h>
#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
#define NOISY(x) //x


void strcpy16_htod(uint16_t* dst, const uint16_t* src)
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();
            str = String8(pool->stringAt(s, &len)).string();
        }
        }


        printf("String #%zd: %s\n", s, str);
        printf("String #" ZD ": %s\n", (ZD_TYPE) s, str);
    }
    }
}
}