Description: Fix FTBFS with GCC6 GCC6 is more pickier on truncating, so this patch fixes the narrowing conversion errors. Author: Tobias Frost Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=811768 Forwarded: https://issues.apache.org/jira/browse/LOGCXX-482 Applied-Upstream: yes, targeted version 0.11.0 Last-Update: 2016-07-01 (DebCamp16) --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ --- a/src/main/cpp/locationinfo.cpp +++ b/src/main/cpp/locationinfo.cpp @@ -148,7 +148,7 @@ if (lineNumber == -1 && fileName == NA && methodName == NA_METHOD) { os.writeNull(p); } else { - char prolog[] = { + unsigned char prolog[] = { 0x72, 0x00, 0x21, 0x6F, 0x72, 0x67, 0x2E, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2E, 0x6C, 0x6F, 0x67, 0x34, 0x6A, 0x2E, 0x73, 0x70, 0x69, @@ -161,7 +161,7 @@ 0x61, 0x76, 0x61, 0x2F, 0x6C, 0x61, 0x6E, 0x67, 0x2F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3B, 0x78, 0x70 }; - os.writeProlog("org.apache.log4j.spi.LocationInfo", 2, prolog, sizeof(prolog), p); + os.writeProlog("org.apache.log4j.spi.LocationInfo", 2, (char *)prolog, sizeof(prolog), p); char* line = p.itoa(lineNumber); // // construct Java-like fullInfo (replace "::" with ".") --- a/src/main/cpp/loggingevent.cpp +++ b/src/main/cpp/loggingevent.cpp @@ -236,7 +236,7 @@ void LoggingEvent::writeProlog(ObjectOutputStream& os, Pool& p) { - char classDesc[] = { + unsigned char classDesc[] = { 0x72, 0x00, 0x21, 0x6F, 0x72, 0x67, 0x2E, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2E, 0x6C, 0x6F, 0x67, 0x34, 0x6A, @@ -292,7 +292,7 @@ 0x3B, 0x78, 0x70 }; os.writeProlog("org.apache.log4j.spi.LoggingEvent", - 8, classDesc, sizeof(classDesc), p); + 8, (char *) classDesc, sizeof(classDesc), p); } void LoggingEvent::write(helpers::ObjectOutputStream& os, Pool& p) const { --- a/src/main/cpp/objectoutputstream.cpp +++ b/src/main/cpp/objectoutputstream.cpp @@ -36,8 +36,8 @@ objectHandle(0x7E0000), classDescriptions(new ClassDescriptionMap()) { - char start[] = { 0xAC, 0xED, 0x00, 0x05 }; - ByteBuffer buf(start, sizeof(start)); + unsigned char start[] = { 0xAC, 0xED, 0x00, 0x05 }; + ByteBuffer buf((char*)start, sizeof(start)); os->write(buf, p); } @@ -81,7 +81,7 @@ // // TC_OBJECT and the classDesc for java.util.Hashtable // - char prolog[] = { + unsigned char prolog[] = { 0x72, 0x00, 0x13, 0x6A, 0x61, 0x76, 0x61, 0x2E, 0x75, 0x74, 0x69, 0x6C, 0x2E, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x13, @@ -90,7 +90,7 @@ 0x64, 0x46, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x49, 0x00, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6F, 0x6C, 0x64, 0x78, 0x70 }; - writeProlog("java.util.Hashtable", 1, prolog, sizeof(prolog), p); + writeProlog("java.util.Hashtable", 1, (char *) prolog, sizeof(prolog), p); // // loadFactor = 0.75, threshold = 5, blockdata start, buckets.size = 7 char data[] = { 0x3F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,