Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
protobuf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
protobuf
Commits
22503a01
Unverified
Commit
22503a01
authored
Jul 12, 2018
by
Paul Yang
Committed by
GitHub
Jul 12, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix for API change in PHP 7.3 (#4898)
parent
e529d162
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
36 additions
and
20 deletions
+36
-20
def.c
php/ext/google/protobuf/def.c
+9
-9
encode_decode.c
php/ext/google/protobuf/encode_decode.c
+1
-1
map.c
php/ext/google/protobuf/map.c
+4
-2
message.c
php/ext/google/protobuf/message.c
+8
-0
protobuf.c
php/ext/google/protobuf/protobuf.c
+5
-4
protobuf.h
php/ext/google/protobuf/protobuf.h
+6
-1
storage.c
php/ext/google/protobuf/storage.c
+3
-3
No files found.
php/ext/google/protobuf/def.c
View file @
22503a01
...
...
@@ -253,7 +253,7 @@ PHP_METHOD(Descriptor, getField) {
#else
field_hashtable_value
=
field_descriptor_type
->
create_object
(
field_descriptor_type
TSRMLS_CC
);
--
GC_REFCOUNT
(
field_hashtable_value
);
GC_DELREF
(
field_hashtable_value
);
#endif
FieldDescriptor
*
field_php
=
UNBOX_HASHTABLE_VALUE
(
FieldDescriptor
,
field_hashtable_value
);
...
...
@@ -264,7 +264,7 @@ PHP_METHOD(Descriptor, getField) {
#if PHP_MAJOR_VERSION < 7
RETURN_ZVAL
(
field_hashtable_value
,
1
,
0
);
#else
++
GC_REFCOUNT
(
field_hashtable_value
);
GC_ADDREF
(
field_hashtable_value
);
RETURN_OBJ
(
field_hashtable_value
);
#endif
}
...
...
@@ -492,7 +492,7 @@ PHP_METHOD(FieldDescriptor, getEnumType) {
#if PHP_MAJOR_VERSION < 7
RETURN_ZVAL
(
desc
,
1
,
0
);
#else
++
GC_REFCOUNT
(
desc
);
GC_ADDREF
(
desc
);
RETURN_OBJ
(
desc
);
#endif
}
...
...
@@ -512,7 +512,7 @@ PHP_METHOD(FieldDescriptor, getMessageType) {
#if PHP_MAJOR_VERSION < 7
RETURN_ZVAL
(
desc
,
1
,
0
);
#else
++
GC_REFCOUNT
(
desc
);
GC_ADDREF
(
desc
);
RETURN_OBJ
(
desc
);
#endif
}
...
...
@@ -585,7 +585,7 @@ PHP_METHOD(Oneof, getField) {
#if PHP_MAJOR_VERSION < 7
RETURN_ZVAL
(
field_hashtable_value
,
1
,
0
);
#else
++
GC_REFCOUNT
(
field_hashtable_value
);
GC_ADDREF
(
field_hashtable_value
);
RETURN_OBJ
(
field_hashtable_value
);
#endif
}
...
...
@@ -703,7 +703,7 @@ PHP_METHOD(DescriptorPool, getGeneratedPool) {
#if PHP_MAJOR_VERSION < 7
RETURN_ZVAL
(
generated_pool_php
,
1
,
0
);
#else
++
GC_REFCOUNT
(
generated_pool_php
);
GC_ADDREF
(
generated_pool_php
);
RETURN_OBJ
(
generated_pool_php
);
#endif
}
...
...
@@ -713,7 +713,7 @@ PHP_METHOD(InternalDescriptorPool, getGeneratedPool) {
#if PHP_MAJOR_VERSION < 7
RETURN_ZVAL
(
internal_generated_pool_php
,
1
,
0
);
#else
++
GC_REFCOUNT
(
internal_generated_pool_php
);
GC_ADDREF
(
internal_generated_pool_php
);
RETURN_OBJ
(
internal_generated_pool_php
);
#endif
}
...
...
@@ -1033,7 +1033,7 @@ PHP_METHOD(DescriptorPool, getDescriptorByClassName) {
#if PHP_MAJOR_VERSION < 7
RETURN_ZVAL
(
desc
,
1
,
0
);
#else
++
GC_REFCOUNT
(
desc
);
GC_ADDREF
(
desc
);
RETURN_OBJ
(
desc
);
#endif
}
...
...
@@ -1070,7 +1070,7 @@ PHP_METHOD(DescriptorPool, getEnumDescriptorByClassName) {
#if PHP_MAJOR_VERSION < 7
RETURN_ZVAL
(
desc
,
1
,
0
);
#else
++
GC_REFCOUNT
(
desc
);
GC_ADDREF
(
desc
);
RETURN_OBJ
(
desc
);
#endif
}
php/ext/google/protobuf/encode_decode.c
View file @
22503a01
...
...
@@ -577,7 +577,7 @@ static void map_slot_value(upb_fieldtype_t type, const void* from,
break
;
case
UPB_TYPE_MESSAGE
:
*
(
zend_object
**
)
to
=
Z_OBJ_P
(
*
(
zval
**
)
from
);
++
GC_REFCOUNT
(
*
(
zend_object
**
)
to
);
GC_ADDREF
(
*
(
zend_object
**
)
to
);
break
;
#endif
default:
...
...
php/ext/google/protobuf/map.c
View file @
22503a01
...
...
@@ -192,7 +192,8 @@ static inline void php_proto_map_string_release(void *value) {
}
static
inline
void
php_proto_map_object_release
(
void
*
value
)
{
zend_object
*
object
=
*
(
zend_object
**
)
value
;
if
(
--
GC_REFCOUNT
(
object
)
==
0
)
{
GC_DELREF
(
object
);
if
(
GC_REFCOUNT
(
object
)
==
0
)
{
zend_objects_store_del
(
object
);
}
}
...
...
@@ -302,7 +303,8 @@ static bool map_index_unset(Map *intern, const char* keyval, int length) {
zval_ptr_dtor
(
upb_value_memory
(
&
old_value
));
#else
zend_object
*
object
=
*
(
zend_object
**
)
upb_value_memory
(
&
old_value
);
if
(
--
GC_REFCOUNT
(
object
)
==
0
)
{
GC_DELREF
(
object
);
if
(
GC_REFCOUNT
(
object
)
==
0
)
{
zend_objects_store_del
(
object
);
}
#endif
...
...
php/ext/google/protobuf/message.c
View file @
22503a01
...
...
@@ -869,7 +869,11 @@ PHP_PROTO_INIT_ENUMCLASS_START("Google\\Protobuf\\Field\\Cardinality",
zend_declare_class_constant_long
(
field_cardinality_type
,
"CARDINALITY_REPEATED"
,
20
,
3
TSRMLS_CC
);
const
char
*
alias
=
"Google
\\
Protobuf
\\
Field_Cardinality"
;
#if PHP_VERSION_ID < 70300
zend_register_class_alias_ex
(
alias
,
strlen
(
alias
),
field_cardinality_type
TSRMLS_CC
);
#else
zend_register_class_alias_ex
(
alias
,
strlen
(
alias
),
field_cardinality_type
,
1
);
#endif
PHP_PROTO_INIT_ENUMCLASS_END
// -----------------------------------------------------------------------------
...
...
@@ -924,7 +928,11 @@ PHP_PROTO_INIT_ENUMCLASS_START("Google\\Protobuf\\Field\\Kind",
zend_declare_class_constant_long
(
field_kind_type
,
"TYPE_SINT64"
,
11
,
18
TSRMLS_CC
);
const
char
*
alias
=
"Google
\\
Protobuf
\\
Field_Kind"
;
#if PHP_VERSION_ID < 70300
zend_register_class_alias_ex
(
alias
,
strlen
(
alias
),
field_kind_type
TSRMLS_CC
);
#else
zend_register_class_alias_ex
(
alias
,
strlen
(
alias
),
field_kind_type
,
1
);
#endif
PHP_PROTO_INIT_ENUMCLASS_END
// -----------------------------------------------------------------------------
...
...
php/ext/google/protobuf/protobuf.c
View file @
22503a01
...
...
@@ -104,7 +104,7 @@ void add_def_obj(const void* def, PHP_PROTO_HASHTABLE_VALUE value) {
#if PHP_MAJOR_VERSION < 7
Z_ADDREF_P
(
value
);
#else
++
GC_REFCOUNT
(
value
);
GC_ADDREF
(
value
);
#endif
add_to_table
(
upb_def_to_php_obj_map
,
def
,
value
);
}
...
...
@@ -117,7 +117,7 @@ void add_ce_obj(const void* ce, PHP_PROTO_HASHTABLE_VALUE value) {
#if PHP_MAJOR_VERSION < 7
Z_ADDREF_P
(
value
);
#else
++
GC_REFCOUNT
(
value
);
GC_ADDREF
(
value
);
#endif
add_to_table
(
ce_to_php_obj_map
,
ce
,
value
);
}
...
...
@@ -134,7 +134,7 @@ void add_proto_obj(const char* proto, PHP_PROTO_HASHTABLE_VALUE value) {
#if PHP_MAJOR_VERSION < 7
Z_ADDREF_P
(
value
);
#else
++
GC_REFCOUNT
(
value
);
GC_ADDREF
(
value
);
#endif
add_to_strtable
(
proto_to_php_obj_map
,
proto
,
strlen
(
proto
),
value
);
}
...
...
@@ -235,7 +235,8 @@ static PHP_GSHUTDOWN_FUNCTION(protobuf) {
static
void
php_proto_hashtable_descriptor_release
(
zval
*
value
)
{
void
*
ptr
=
Z_PTR_P
(
value
);
zend_object
*
object
=
*
(
zend_object
**
)
ptr
;
if
(
--
GC_REFCOUNT
(
object
)
==
0
)
{
GC_DELREF
(
object
);
if
(
GC_REFCOUNT
(
object
)
==
0
)
{
zend_objects_store_del
(
object
);
}
efree
(
ptr
);
...
...
php/ext/google/protobuf/protobuf.h
View file @
22503a01
...
...
@@ -46,6 +46,11 @@
// PHP7 Wrappers
// ----------------------------------------------------------------------------
#if PHP_VERSION_ID < 70300
#define GC_ADDREF(h) ++GC_REFCOUNT(h)
#define GC_DELREF(h) --GC_REFCOUNT(h)
#endif
#if PHP_MAJOR_VERSION < 7
#define php_proto_zend_literal const zend_literal*
...
...
@@ -496,7 +501,7 @@ static inline int php_proto_zend_hash_get_current_data_ex(HashTable* ht,
PHP_PROTO_HASHTABLE_VALUE WRAPPED_OBJ; \
WRAPPED_OBJ = OBJ_CLASS_ENTRY->create_object(OBJ_CLASS_ENTRY); \
OBJ = UNBOX_HASHTABLE_VALUE(OBJ_TYPE, WRAPPED_OBJ); \
--GC_REFCOUNT
(WRAPPED_OBJ);
GC_DELREF
(WRAPPED_OBJ);
#define PHP_PROTO_CE_DECLARE zend_class_entry*
#define PHP_PROTO_CE_UNREF(ce) (ce)
...
...
php/ext/google/protobuf/storage.c
View file @
22503a01
...
...
@@ -200,7 +200,7 @@ bool native_slot_set_by_array(upb_fieldtype_t type,
}
#else
DEREF
(
memory
,
zval
*
)
=
value
;
++
GC_REFCOUNT
(
Z_OBJ_P
(
value
));
GC_ADDREF
(
Z_OBJ_P
(
value
));
#endif
break
;
}
...
...
@@ -251,7 +251,7 @@ bool native_slot_set_by_map(upb_fieldtype_t type, const zend_class_entry* klass,
}
#else
DEREF
(
memory
,
zend_object
*
)
=
Z_OBJ_P
(
value
);
++
GC_REFCOUNT
(
Z_OBJ_P
(
value
));
GC_ADDREF
(
Z_OBJ_P
(
value
));
#endif
break
;
}
...
...
@@ -428,7 +428,7 @@ void native_slot_get_by_map_value(upb_fieldtype_t type, const void* memory,
ZVAL_ZVAL
(
CACHED_PTR_TO_ZVAL_PTR
(
cache
),
value
,
1
,
0
);
}
#else
++
GC_REFCOUNT
(
*
(
zend_object
**
)
memory
);
GC_ADDREF
(
*
(
zend_object
**
)
memory
);
ZVAL_OBJ
(
cache
,
*
(
zend_object
**
)
memory
);
#endif
return
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment