diff --git a/core/src/array/array_schema.cc b/core/src/array/array_schema.cc index c5d9eb5..4012e3a 100644 --- a/core/src/array/array_schema.cc +++ b/core/src/array/array_schema.cc @@ -773,8 +773,8 @@ int ArraySchema::serialize( memcpy(buffer + offset, &compression, sizeof(char)); offset += sizeof(char); } - // Copy compression_level_ - char compression_level; + // Copy compression_level_. Levels can be negative, and char is unsigned on some platforms + int8_t compression_level; for(int i=0; i<=attribute_num_; ++i) { compression_level = compression_level_[i]; assert(offset + sizeof(char) <= buffer_size); @@ -790,7 +790,7 @@ int ArraySchema::serialize( offset += sizeof(char); } // Copy offsets compression_level_ - char offsets_compression_level; + int8_t offsets_compression_level; for(int i=0; i= 1L) { - char compression_level; + // Levels can be negative, and char is unsigned on some platforms + int8_t compression_level; for(int i=0; i<=attribute_num_; ++i) { assert(offset + sizeof(char) <= buffer_size); memcpy(&compression_level, buffer + offset, sizeof(char)); @@ -1218,7 +1219,7 @@ int ArraySchema::deserialize( } // Load offsets_compression_level_. Support added in array schema version 2L if (get_version() >= 2L) { - char offsets_compression_level; + int8_t offsets_compression_level; for(int i=0; i