Fix static initialization ordering bug that caused crashes at startup when
compiling on Mac with static linking.
This commit is contained in:
parent
f206351d14
commit
6fdb0964e3
@ -2065,7 +2065,15 @@ const FileDescriptor* DescriptorBuilder::BuildFile(
|
||||
}
|
||||
|
||||
result->name_ = tables_->AllocateString(proto.name());
|
||||
result->package_ = tables_->AllocateString(proto.package());
|
||||
if (proto.has_package()) {
|
||||
result->package_ = tables_->AllocateString(proto.package());
|
||||
} else {
|
||||
// We cannot rely on proto.package() returning a valid string if
|
||||
// proto.has_package() is false, because we might be running at static
|
||||
// initialization time, in which case default values have not yet been
|
||||
// initialized.
|
||||
result->package_ = tables_->AllocateString("");
|
||||
}
|
||||
result->pool_ = pool_;
|
||||
|
||||
// Add to tables.
|
||||
|
Loading…
Reference in New Issue
Block a user