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.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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 <class InputIterator, class OutputIterator>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user