Skip to content

Commit

Permalink
[build] Be compatible with the latest protobuf (#23260)
Browse files Browse the repository at this point in the history
Resolve #21308
  • Loading branch information
snnn authored Jan 6, 2025
1 parent c6cbda3 commit 704523c
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion onnxruntime/core/graph/graph.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1288,10 +1288,12 @@ Graph::Graph(const Model& owning_model,

// Remove sparse_initializers from protobuf to save memory as they are converted to dense now
graph_proto_->mutable_sparse_initializer()->Clear();
#if GOOGLE_PROTOBUF_VERSION < 5026000
const int sparse_num_cleared = graph_proto_->sparse_initializer().ClearedCount();
for (int i = 0; i < sparse_num_cleared; ++i) {
delete graph_proto_->mutable_sparse_initializer()->ReleaseCleared();
}
#endif
}
#endif

Expand Down Expand Up @@ -3646,15 +3648,16 @@ void Graph::CleanAllInitializedTensors() noexcept {
#if !defined(DISABLE_SPARSE_TENSORS)
sparse_tensor_names_.clear();
#endif

// Clearing RepeatedPtrFields does not free objects' memory. The memory is retained
// and can be reused. Need to explicitly release the cleared objects and free the
// memory.
graph_proto_->mutable_initializer()->Clear();
#if GOOGLE_PROTOBUF_VERSION < 5026000
const int num_cleared = graph_proto_->initializer().ClearedCount();
for (int i = 0; i < num_cleared; i++) {
delete graph_proto_->mutable_initializer()->ReleaseCleared();
}
#endif
}

const ONNX_NAMESPACE::TensorProto* Graph::GetConstantInitializer(const std::string& initializer_name,
Expand Down

0 comments on commit 704523c

Please sign in to comment.