Skip to content

Commit f27ec2d

Browse files
committed
address code review comments: use references, plus add extra nullptr check, and add braces around if/else with a macro
1 parent 13e537d commit f27ec2d

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

onnxruntime/core/providers/openvino/backend_manager.cc

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -348,12 +348,12 @@ static void DumpOpenVINOEPModel([[maybe_unused]] const std::filesystem::path& on
348348

349349
// this is a helper function to set the data fields, it duplicates ExternalDataInfo::SetExternalLocationToProto
350350
// but we cannot use that function as it is not part of public provider api.
351-
static void SetExternalDataFields(ONNX_NAMESPACE::TensorProto* proto_init, const void* data_ptr, int64_t data_size) {
351+
static void SetExternalDataFields(ONNX_NAMESPACE::TensorProto& proto_init, const void* data_ptr, int64_t data_size) {
352352
static constexpr const char* ORT_INTERNAL_MEM_INITIALIZER = "*/_ORT_MEM_ADDR_/*";
353-
auto* external_data = proto_init->mutable_external_data();
353+
auto* external_data = proto_init.mutable_external_data();
354354
bool found_location = false, found_offset = false, found_length = false;
355355
const int ext_data_size = external_data->size();
356-
proto_init->set_data_location(ONNX_NAMESPACE::TensorProto_DataLocation::TensorProto_DataLocation_EXTERNAL);
356+
proto_init.set_data_location(ONNX_NAMESPACE::TensorProto_DataLocation::TensorProto_DataLocation_EXTERNAL);
357357

358358
for (int j = 0; j < ext_data_size; ++j) {
359359
auto& ext_entry = external_data->at(j);
@@ -543,6 +543,10 @@ BackendManager::GetModelProtoFromFusedNode(const onnxruntime::Node& fused_node,
543543

544544
auto* proto_init = it->second;
545545

546+
if (!proto_init) {
547+
ORT_THROW(name + " proto initializer is null!");
548+
}
549+
546550
// If the proto initializer is missing data, fill it in
547551
if (!proto_init->has_raw_data() && src_init->has_raw_data()) {
548552
*proto_init->mutable_raw_data() = src_init->raw_data();
@@ -554,10 +558,12 @@ BackendManager::GetModelProtoFromFusedNode(const onnxruntime::Node& fused_node,
554558
<< src_init->name()
555559
<< ", data_type: " << src_init->data_type()
556560
<< ", raw_data size: " << src_init->raw_data().size();
557-
if (src_init->raw_data().size() > 0)
558-
SetExternalDataFields(proto_init, src_init->raw_data().data(), src_init->raw_data().size());
559-
else
560-
LOGS(logger, VERBOSE) << "Initializer has empty raw_data: skipping initializer '" << src_init->name() << "'...";
561+
if (src_init->raw_data().size() > 0) {
562+
SetExternalDataFields(*proto_init, src_init->raw_data().data(), src_init->raw_data().size());
563+
}
564+
else {
565+
LOGS(logger, VERBOSE) << "Initializer has empty raw_data: skipping initializer '" << src_init->name() << "'...";
566+
}
561567
} else if (onnxruntime::utils::HasExternalDataInMemory(*src_init)) {
562568
auto it_ext = external_initializers_offset_and_length.find(name);
563569
if (it_ext == external_initializers_offset_and_length.end()) {
@@ -570,7 +576,7 @@ BackendManager::GetModelProtoFromFusedNode(const onnxruntime::Node& fused_node,
570576

571577
LOGS(logger, VERBOSE) << "In-memory initializer EXT: " << src_init->name() << ", size: " << length;
572578

573-
SetExternalDataFields(proto_init, (const void*)offset, length);
579+
SetExternalDataFields(*proto_init, (const void*)offset, length);
574580
} else {
575581
LOGS(logger, VERBOSE) << "File-based initializer: " << src_init->name() << ", data_type: " << src_init->data_type();
576582
}

0 commit comments

Comments
 (0)