vendor/isotree/src/serialize.cpp in isotree-0.3.0 vs vendor/isotree/src/serialize.cpp in isotree-0.3.1

- old
+ new

@@ -1845,17 +1845,17 @@ if (setup_info[1] == 0 && setup_info[2] < 5) { lacks_indexer = true; } if (setup_info[4] == (uint8_t)IsAbnormalDouble) - fprintf(stderr, "Warning: input model uses non-standard numeric type, might read correctly.\n"); + print_errmsg("Warning: input model uses non-standard numeric type, might read correctly.\n"); switch(setup_info[6]) { - case 16: {saved_int_t = Is16Bit; break;} - case 32: {saved_int_t = Is32Bit; break;} - case 64: {saved_int_t = Is64Bit; break;} + case 2: {saved_int_t = Is16Bit; break;} + case 4: {saved_int_t = Is32Bit; break;} + case 8: {saved_int_t = Is64Bit; break;} default: {saved_int_t = IsOther; break;} } if ((uint8_t)sizeof(int) != setup_info[6]) { has_same_int_size = false; if (sizeof(uint8_t) != 1) return; @@ -3842,11 +3842,11 @@ std::unique_ptr<char[]> new_model; if (serialized_model != NULL) { if (memcmp(curr_setup.get(), serialized_model, get_size_setup_info())) { - fprintf(stderr, "Warning: 'model' was serialized in a different setup, will need to convert.\n"); + print_errmsg("Warning: 'model' was serialized in a different setup, will need to convert.\n"); IsoForest model; deserialization_pipeline(model, serialized_model); new_model = std::unique_ptr<char[]>(new char[get_size_model(model)]); char *ptr_new_model_ser = new_model.get(); serialization_pipeline(model, ptr_new_model_ser); @@ -3860,11 +3860,11 @@ else { if (memcmp(curr_setup.get(), serialized_model_ext, get_size_setup_info())) { - fprintf(stderr, "Warning: 'model_ext' was serialized in a different setup, will need to convert.\n"); + print_errmsg("Warning: 'model_ext' was serialized in a different setup, will need to convert.\n"); ExtIsoForest model; deserialization_pipeline(model, serialized_model_ext); new_model = std::unique_ptr<char[]>(new char[get_size_model(model)]); char *ptr_new_model_ser = new_model.get(); serialization_pipeline(model, ptr_new_model_ser); @@ -3882,11 +3882,11 @@ if (serialized_imputer != NULL) { if (memcmp(curr_setup.get(), serialized_imputer, get_size_setup_info())) { - fprintf(stderr, "Warning: 'imputer' was serialized in a different setup, will need to convert.\n"); + print_errmsg("Warning: 'imputer' was serialized in a different setup, will need to convert.\n"); Imputer model; deserialization_pipeline(model, serialized_imputer); new_model = std::unique_ptr<char[]>(new char[get_size_model(model)]); char *ptr_new_model_ser = new_model.get(); serialization_pipeline(model, ptr_new_model_ser); @@ -3905,11 +3905,11 @@ if (serialized_indexer != NULL) { if (memcmp(curr_setup.get(), serialized_indexer, get_size_setup_info())) { - fprintf(stderr, "Warning: 'indexer' was serialized in a different setup, will need to convert.\n"); + print_errmsg("Warning: 'indexer' was serialized in a different setup, will need to convert.\n"); TreesIndexer model; deserialization_pipeline(model, serialized_indexer); new_model = std::unique_ptr<char[]>(new char[get_size_model(model)]); char *ptr_new_model_ser = new_model.get(); serialization_pipeline(model, ptr_new_model_ser); @@ -4209,75 +4209,91 @@ } case HasSingleVarModelPlusMetadataNext: { deserialize_model(*model, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); - read_bytes<char>((void*)optional_metadata, size_metadata, in); + if (optional_metadata) { + read_bytes<char>((void*)optional_metadata, size_metadata, in); + } break; } case HasSingleVarModelPlusIndexerPlusMetadataNext: { deserialize_model(*model, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); deserialize_model(*indexer, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); - read_bytes<char>((void*)optional_metadata, size_metadata, in); + if (optional_metadata) { + read_bytes<char>((void*)optional_metadata, size_metadata, in); + } break; } case HasExtModelPlusMetadataNext: { deserialize_model(*model_ext, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); - read_bytes<char>((void*)optional_metadata, size_metadata, in); + if (optional_metadata) { + read_bytes<char>((void*)optional_metadata, size_metadata, in); + } break; } case HasExtModelPlusIndexerPlusMetadataNext: { deserialize_model(*model_ext, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); deserialize_model(*indexer, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); - read_bytes<char>((void*)optional_metadata, size_metadata, in); + if (optional_metadata) { + read_bytes<char>((void*)optional_metadata, size_metadata, in); + } break; } case HasSingleVarModelPlusImputerPlusMetadataNext: { deserialize_model(*model, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); deserialize_model(*imputer, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); - read_bytes<char>((void*)optional_metadata, size_metadata, in); + if (optional_metadata) { + read_bytes<char>((void*)optional_metadata, size_metadata, in); + } break; } case HasSingleVarModelPlusImputerPlusIndexerPlusMetadataNext: { deserialize_model(*model, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); deserialize_model(*imputer, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); deserialize_model(*indexer, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); - read_bytes<char>((void*)optional_metadata, size_metadata, in); + if (optional_metadata) { + read_bytes<char>((void*)optional_metadata, size_metadata, in); + } break; } case HasExtModelPlusImputerPlusMetadataNext: { deserialize_model(*model_ext, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); deserialize_model(*imputer, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); - read_bytes<char>((void*)optional_metadata, size_metadata, in); + if (optional_metadata) { + read_bytes<char>((void*)optional_metadata, size_metadata, in); + } break; } case HasExtModelPlusImputerPlusIndexerPlusMetadataNext: { deserialize_model(*model_ext, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); deserialize_model(*imputer, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); deserialize_model(*indexer, in, has_same_endianness, has_same_int_size, has_same_size_t_size, saved_int_t, saved_size_t, lacks_range_penalty, lacks_scoring_metric); check_interrupt_switch(ss); - read_bytes<char>((void*)optional_metadata, size_metadata, in); + if (optional_metadata) { + read_bytes<char>((void*)optional_metadata, size_metadata, in); + } break; } default: {