Skip to content

Commit 9d66170

Browse files
committed
Testi
1 parent efb8c74 commit 9d66170

20 files changed

+139
-39
lines changed

php_phongo.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ zend_object_handlers* phongo_get_std_object_handlers(void);
7070
(props) = zend_array_dup((intern)->php_properties); \
7171
} else { \
7272
if ((intern)->properties) { \
73-
zend_hash_release(intern->properties); \
73+
(props) = (intern)->properties; \
74+
(intern)->properties = NULL; \
75+
zend_hash_release(props); \
7476
} \
7577
(props) = zend_array_dup((intern)->php_properties); \
7678
(intern)->properties = (props); \

src/BSON/Binary.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,11 +213,16 @@ static void php_phongo_binary_free_object(zend_object* object)
213213
efree(intern->data);
214214
}
215215

216+
216217
if (intern->properties) {
217-
zend_hash_release(intern->properties);
218+
HashTable* props = intern->properties;
219+
intern->properties = NULL;
220+
zend_hash_release(props);
218221
}
219222
if (intern->php_properties) {
220-
zend_hash_release(intern->php_properties);
223+
HashTable* props = intern->php_properties;
224+
intern->php_properties = NULL;
225+
zend_hash_release(props);
221226
}
222227
}
223228

src/BSON/DBPointer.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,16 @@ static void php_phongo_dbpointer_free_object(zend_object* object)
176176
efree(intern->ref);
177177
}
178178

179+
179180
if (intern->properties) {
180-
zend_hash_release(intern->properties);
181+
HashTable* props = intern->properties;
182+
intern->properties = NULL;
183+
zend_hash_release(props);
181184
}
182185
if (intern->php_properties) {
183-
zend_hash_release(intern->php_properties);
186+
HashTable* props = intern->php_properties;
187+
intern->php_properties = NULL;
188+
zend_hash_release(props);
184189
}
185190
}
186191

src/BSON/Decimal128.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,16 @@ static void php_phongo_decimal128_free_object(zend_object* object)
168168

169169
zend_object_std_dtor(&intern->std);
170170

171+
171172
if (intern->properties) {
172-
zend_hash_release(intern->properties);
173+
HashTable* props = intern->properties;
174+
intern->properties = NULL;
175+
zend_hash_release(props);
173176
}
174177
if (intern->php_properties) {
175-
zend_hash_release(intern->php_properties);
178+
HashTable* props = intern->php_properties;
179+
intern->php_properties = NULL;
180+
zend_hash_release(props);
176181
}
177182
}
178183

src/BSON/Document.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -446,11 +446,16 @@ static void php_phongo_document_free_object(zend_object* object)
446446
bson_destroy(intern->bson);
447447
}
448448

449+
449450
if (intern->properties) {
450-
zend_hash_release(intern->properties);
451+
HashTable* props = intern->properties;
452+
intern->properties = NULL;
453+
zend_hash_release(props);
451454
}
452455
if (intern->php_properties) {
453-
zend_hash_release(intern->php_properties);
456+
HashTable* props = intern->php_properties;
457+
intern->php_properties = NULL;
458+
zend_hash_release(props);
454459
}
455460
}
456461

src/BSON/Int64.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,16 @@ static void php_phongo_int64_free_object(zend_object* object)
175175

176176
zend_object_std_dtor(&intern->std);
177177

178+
178179
if (intern->properties) {
179-
zend_hash_release(intern->properties);
180+
HashTable* props = intern->properties;
181+
intern->properties = NULL;
182+
zend_hash_release(props);
180183
}
181184
if (intern->php_properties) {
182-
zend_hash_release(intern->php_properties);
185+
HashTable* props = intern->php_properties;
186+
intern->php_properties = NULL;
187+
zend_hash_release(props);
183188
}
184189
}
185190

src/BSON/Iterator.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,11 +248,16 @@ static void php_phongo_iterator_free_object(zend_object* object)
248248

249249
zend_object_std_dtor(&intern->std);
250250

251+
251252
if (intern->properties) {
252-
zend_hash_release(intern->properties);
253+
HashTable* props = intern->properties;
254+
intern->properties = NULL;
255+
zend_hash_release(props);
253256
}
254257
if (intern->php_properties) {
255-
zend_hash_release(intern->php_properties);
258+
HashTable* props = intern->php_properties;
259+
intern->php_properties = NULL;
260+
zend_hash_release(props);
256261
}
257262

258263
php_phongo_iterator_free_current(intern);

src/BSON/Javascript.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,11 +262,16 @@ static void php_phongo_javascript_free_object(zend_object* object)
262262
intern->scope = NULL;
263263
}
264264

265+
265266
if (intern->properties) {
266-
zend_hash_release(intern->properties);
267+
HashTable* props = intern->properties;
268+
intern->properties = NULL;
269+
zend_hash_release(props);
267270
}
268271
if (intern->php_properties) {
269-
zend_hash_release(intern->php_properties);
272+
HashTable* props = intern->php_properties;
273+
intern->php_properties = NULL;
274+
zend_hash_release(props);
270275
}
271276
}
272277

src/BSON/ObjectId.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ static HashTable* php_phongo_objectid_get_properties_hash(zend_object* object, b
9696
ZVAL_STRING(&zv, intern->oid);
9797
zend_hash_str_update(props, "oid", sizeof("oid") - 1, &zv);
9898
}
99+
if (!is_temp) {
100+
GC_ADDREF(props);
101+
}
99102

100103
return props;
101104
}
@@ -202,11 +205,16 @@ static void php_phongo_objectid_free_object(zend_object* object)
202205

203206
zend_object_std_dtor(&intern->std);
204207

208+
205209
if (intern->properties) {
206-
zend_hash_release(intern->properties);
210+
HashTable* props = intern->properties;
211+
intern->properties = NULL;
212+
zend_hash_release(props);
207213
}
208214
if (intern->php_properties) {
209-
zend_hash_release(intern->php_properties);
215+
HashTable* props = intern->php_properties;
216+
intern->php_properties = NULL;
217+
zend_hash_release(props);
210218
}
211219
}
212220

src/BSON/PackedArray.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -430,11 +430,16 @@ static void php_phongo_packedarray_free_object(zend_object* object)
430430
bson_destroy(intern->bson);
431431
}
432432

433+
433434
if (intern->properties) {
434-
zend_hash_release(intern->properties);
435+
HashTable* props = intern->properties;
436+
intern->properties = NULL;
437+
zend_hash_release(props);
435438
}
436439
if (intern->php_properties) {
437-
zend_hash_release(intern->php_properties);
440+
HashTable* props = intern->php_properties;
441+
intern->php_properties = NULL;
442+
zend_hash_release(props);
438443
}
439444
}
440445

0 commit comments

Comments
 (0)