diff options
author | Bo Yang <teboring@google.com> | 2017-09-11 15:51:57 -0700 |
---|---|---|
committer | Bo Yang <teboring@google.com> | 2017-09-11 15:51:57 -0700 |
commit | ddb9ef9cc3f9a7eab1ddf7ff90ecf2400e93c2b8 (patch) | |
tree | 9fe37ac0ea2ab2d19ad3d9bb39a0ab6d3ef3a94a /php/ext/google/protobuf/protobuf.h | |
parent | 89069ded5a34d552e63c541ed1132cefe34d91d1 (diff) | |
download | protobuf-ddb9ef9cc3f9a7eab1ddf7ff90ecf2400e93c2b8.tar.gz |
Change array to map for reserved names in c extension
Diffstat (limited to 'php/ext/google/protobuf/protobuf.h')
-rw-r--r-- | php/ext/google/protobuf/protobuf.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/php/ext/google/protobuf/protobuf.h b/php/ext/google/protobuf/protobuf.h index b2838e569..010cb25fc 100644 --- a/php/ext/google/protobuf/protobuf.h +++ b/php/ext/google/protobuf/protobuf.h @@ -77,12 +77,18 @@ #define php_proto_zend_hash_index_update_zval(ht, h, pData) \ zend_hash_index_update(ht, h, &(pData), sizeof(void*), NULL) +#define php_proto_zend_hash_update(ht, key, key_len) \ + zend_hash_update(ht, key, key_len, 0, 0, NULL) + #define php_proto_zend_hash_index_update_mem(ht, h, pData, nDataSize, pDest) \ zend_hash_index_update(ht, h, pData, nDataSize, pDest) #define php_proto_zend_hash_index_find_zval(ht, h, pDest) \ zend_hash_index_find(ht, h, pDest) +#define php_proto_zend_hash_find(ht, key, key_len, pDest) \ + zend_hash_find(ht, key, key_len, pDest) + #define php_proto_zend_hash_index_find_mem(ht, h, pDest) \ zend_hash_index_find(ht, h, pDest) @@ -234,6 +240,15 @@ static inline int php_proto_zend_hash_index_update_zval(HashTable* ht, ulong h, return result != NULL ? SUCCESS : FAILURE; } +static inline int php_proto_zend_hash_update(HashTable* ht, const char* key, + size_t key_len) { + void* result = NULL; + zval temp; + ZVAL_LONG(&temp, 0); + result = zend_hash_str_update(ht, key, key_len, &temp); + return result != NULL ? SUCCESS : FAILURE; +} + static inline int php_proto_zend_hash_index_update_mem(HashTable* ht, ulong h, void* pData, uint nDataSize, void** pDest) { @@ -250,6 +265,13 @@ static inline int php_proto_zend_hash_index_find_zval(const HashTable* ht, return result != NULL ? SUCCESS : FAILURE; } +static inline int php_proto_zend_hash_find(const HashTable* ht, const char* key, + size_t key_len, void** pDest) { + void* result = NULL; + result = zend_hash_str_find(ht, key, key_len); + return result != NULL ? SUCCESS : FAILURE; +} + static inline int php_proto_zend_hash_index_find_mem(const HashTable* ht, ulong h, void** pDest) { void* result = NULL; @@ -910,4 +932,7 @@ const zend_class_entry* field_type_class( .bucket.obj.object)) #endif +// Reserved name +bool is_reserved_name(const char* name); + #endif // __GOOGLE_PROTOBUF_PHP_PROTOBUF_H__ |