aboutsummaryrefslogtreecommitdiff
path: root/php/ext/google/protobuf/message.c
diff options
context:
space:
mode:
Diffstat (limited to 'php/ext/google/protobuf/message.c')
-rw-r--r--php/ext/google/protobuf/message.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/php/ext/google/protobuf/message.c b/php/ext/google/protobuf/message.c
index b11c7215..cf75d979 100644
--- a/php/ext/google/protobuf/message.c
+++ b/php/ext/google/protobuf/message.c
@@ -374,10 +374,11 @@ PHP_METHOD(Message, whichOneof) {
LOWER_FIELD) \
PHP_METHOD(UPPER_CLASS, get##UPPER_FIELD) { \
zval member; \
- PHP_PROTO_ZVAL_STRING(&member, LOWER_FIELD, 0); \
+ PHP_PROTO_ZVAL_STRING(&member, LOWER_FIELD, 1); \
PHP_PROTO_FAKE_SCOPE_BEGIN(LOWER_CLASS##_type); \
zval* value = message_get_property_internal(getThis(), &member TSRMLS_CC); \
PHP_PROTO_FAKE_SCOPE_END; \
+ zval_dtor(&member); \
PHP_PROTO_RETVAL_ZVAL(value); \
} \
PHP_METHOD(UPPER_CLASS, set##UPPER_FIELD) { \
@@ -387,8 +388,9 @@ PHP_METHOD(Message, whichOneof) {
return; \
} \
zval member; \
- PHP_PROTO_ZVAL_STRING(&member, LOWER_FIELD, 0); \
+ PHP_PROTO_ZVAL_STRING(&member, LOWER_FIELD, 1); \
message_set_property_internal(getThis(), &member, value TSRMLS_CC); \
+ zval_dtor(&member); \
PHP_PROTO_RETVAL_ZVAL(getThis()); \
}
@@ -396,11 +398,12 @@ PHP_METHOD(Message, whichOneof) {
LOWER_FIELD) \
PHP_METHOD(UPPER_CLASS, get##UPPER_FIELD) { \
zval member; \
- PHP_PROTO_ZVAL_STRING(&member, LOWER_FIELD, 0); \
+ PHP_PROTO_ZVAL_STRING(&member, LOWER_FIELD, 1); \
PHP_PROTO_FAKE_SCOPE_BEGIN(LOWER_CLASS##_type); \
message_get_oneof_property_internal(getThis(), &member, \
return_value TSRMLS_CC); \
PHP_PROTO_FAKE_SCOPE_END; \
+ zval_dtor(&member); \
} \
PHP_METHOD(UPPER_CLASS, set##UPPER_FIELD) { \
zval* value = NULL; \
@@ -409,8 +412,9 @@ PHP_METHOD(Message, whichOneof) {
return; \
} \
zval member; \
- PHP_PROTO_ZVAL_STRING(&member, LOWER_FIELD, 0); \
+ PHP_PROTO_ZVAL_STRING(&member, LOWER_FIELD, 1); \
message_set_property_internal(getThis(), &member, value TSRMLS_CC); \
+ zval_dtor(&member); \
PHP_PROTO_RETVAL_ZVAL(getThis()); \
}