Skip to content

Commit 16706c0

Browse files
committed
add getter check
1 parent 7b3d966 commit 16706c0

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

php/src/Google/Protobuf/Internal/Message.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ private function initWithGeneratedPool()
7777
}
7878
foreach ($this->desc->getField() as $field) {
7979
$setter = $field->getSetter();
80+
$getter = $field->getGetter();
8081
if ($field->isMap()) {
8182
$message_type = $field->getMessageType();
8283
$key_field = $message_type->getFieldByNumber(1);
@@ -128,6 +129,16 @@ private function initWithGeneratedPool()
128129
$oneof = $this->desc->getOneofDecl()[$field->getOneofIndex()];
129130
$oneof_name = $oneof->getName();
130131
$this->$oneof_name = new OneofField($oneof);
132+
} else if (!$field->isRequired() && !$field->isRepeated() &&
133+
PHP_INT_SIZE == 4 && $this->$getter() === 0) {
134+
switch ($field->getType()) {
135+
case GPBType::INT64:
136+
case GPBType::UINT64:
137+
case GPBType::FIXED64:
138+
case GPBType::SFIXED64:
139+
case GPBType::SINT64:
140+
$this->$setter("0");
141+
}
131142
}
132143
}
133144
}

0 commit comments

Comments
 (0)