From 01c712e85195803993acb1d7712796cf494943c6 Mon Sep 17 00:00:00 2001 From: Alberto Luaces Date: Sat, 24 Sep 2016 12:33:37 +0200 Subject: [PATCH] Explicit signed char declarations for portability. Some platforms (ARM, PowerPC, s390x) have "unsigned char" as the default char type, and thus the build fails for certain parts of the code where negative values are assigned to those kind of variables. --- src/osgDB/ConvertBase64.cpp | 2 +- src/osgPlugins/osgjs/Base64 | 2 +- src/osgPlugins/osgjs/Base64.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/osgDB/ConvertBase64.cpp b/src/osgDB/ConvertBase64.cpp index 8a2f59e5a..7cffbefbd 100644 --- a/src/osgDB/ConvertBase64.cpp +++ b/src/osgDB/ConvertBase64.cpp @@ -28,7 +28,7 @@ namespace osgDB int base64_decode_value(char value_in) { - static const char decoding[] = {62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-2,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51}; + static const signed char decoding[] = {62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-2,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51}; static const char decoding_size = sizeof(decoding); value_in -= 43; if (value_in < 0 || value_in >= decoding_size) return -1; diff --git a/src/osgPlugins/osgjs/Base64 b/src/osgPlugins/osgjs/Base64 index 6d1becc1c..acac893fc 100644 --- a/src/osgPlugins/osgjs/Base64 +++ b/src/osgPlugins/osgjs/Base64 @@ -61,7 +61,7 @@ namespace base64 extern const char* to_table; extern const char* to_table_end; - extern const char* from_table; + extern const signed char* from_table; template diff --git a/src/osgPlugins/osgjs/Base64.cpp b/src/osgPlugins/osgjs/Base64.cpp index 227b6b1a3..73e2e1f5e 100644 --- a/src/osgPlugins/osgjs/Base64.cpp +++ b/src/osgPlugins/osgjs/Base64.cpp @@ -18,7 +18,7 @@ namespace base64 const char* to_table_end = _to_table + sizeof(_to_table); - const char _from_table[128] = + const signed char _from_table[128] = { -1, -1, -1, -1, -1, -1, -1, -1, // 0 -1, -1, -1, -1, -1, -1, -1, -1, // 8 @@ -37,6 +37,6 @@ namespace base64 41, 42, 43, 44, 45, 46, 47, 48, // 112 49, 50, 51, -1, -1, -1, -1, -1 // 120 }; - const char* from_table = _from_table; + const signed char* from_table = _from_table; }