Skip to content

Commit df74d6d

Browse files
jmikoladerickr
authored andcommitted
PHPC-404: Additional hash API changes
Since ADD_ASSOC_STRINGL() always duplicates, use a static buffer in UTCDateTime's debug handler when converting milliseconds to a string on 32-bit platforms.
1 parent 8aeb643 commit df74d6d

File tree

7 files changed

+16
-16
lines changed

7 files changed

+16
-16
lines changed

php_phongo.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1398,13 +1398,13 @@ void php_phongo_write_concern_to_zval(zval *retval, const mongoc_write_concern_t
13981398
} else if (mongoc_write_concern_get_wmajority(write_concern)) {
13991399
ADD_ASSOC_STRING(retval, "w", (char *)PHONGO_WRITE_CONCERN_W_MAJORITY);
14001400
} else if (w != MONGOC_WRITE_CONCERN_W_DEFAULT) {
1401-
ADD_ASSOC_LONG_EX(retval, ZEND_STRS("w"), w);
1401+
ADD_ASSOC_LONG_EX(retval, "w", w);
14021402
} else {
1403-
ADD_ASSOC_NULL_EX(retval, ZEND_STRS("w"));
1403+
ADD_ASSOC_NULL_EX(retval, "w");
14041404
}
14051405

1406-
ADD_ASSOC_BOOL_EX(retval, ZEND_STRS("wmajority"), mongoc_write_concern_get_wmajority(write_concern));
1407-
ADD_ASSOC_LONG_EX(retval, ZEND_STRS("wtimeout"), mongoc_write_concern_get_wtimeout(write_concern));
1406+
ADD_ASSOC_BOOL_EX(retval, "wmajority", mongoc_write_concern_get_wmajority(write_concern));
1407+
ADD_ASSOC_LONG_EX(retval, "wtimeout", mongoc_write_concern_get_wtimeout(write_concern));
14081408

14091409
if (write_concern->journal != MONGOC_WRITE_CONCERN_JOURNAL_DEFAULT) {
14101410
ADD_ASSOC_BOOL_EX(retval, "journal", mongoc_write_concern_get_journal(write_concern));

src/BSON/Javascript.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ HashTable *php_phongo_javascript_get_debug_info(zval *object, int *is_temp TSRML
153153

154154
array_init(&retval);
155155

156-
add_assoc_stringl_ex(&retval, ZEND_STRS("javascript"), intern->javascript, intern->javascript_len, 1);
156+
ADD_ASSOC_STRINGL(&retval, "javascript", intern->javascript, intern->javascript_len);
157157

158158
if (intern->document) {
159159
php_phongo_bson_state state = PHONGO_BSON_STATE_INITIALIZER;
@@ -164,7 +164,7 @@ HashTable *php_phongo_javascript_get_debug_info(zval *object, int *is_temp TSRML
164164
Z_ADDREF_P(state.zchild);
165165
add_assoc_zval_ex(&retval, ZEND_STRS("scope"), state.zchild);
166166
} else {
167-
add_assoc_null_ex(&retval, ZEND_STRS("scope"));
167+
ADD_ASSOC_NULL_EX(&retval, "scope");
168168
}
169169

170170
zval_ptr_dtor(&state.zchild);

src/BSON/Regex.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,8 +219,8 @@ HashTable *php_phongo_regex_get_debug_info(zval *object, int *is_temp TSRMLS_DC)
219219

220220
array_init(&retval);
221221

222-
add_assoc_stringl_ex(&retval, ZEND_STRS("pattern"), intern->pattern, intern->pattern_len, 1);
223-
add_assoc_stringl_ex(&retval, ZEND_STRS("flags"), intern->flags, intern->flags_len, 1);
222+
ADD_ASSOC_STRINGL(&retval, "pattern", intern->pattern, intern->pattern_len);
223+
ADD_ASSOC_STRINGL(&retval, "flags", intern->flags, intern->flags_len);
224224

225225
return Z_ARRVAL(retval);
226226
} /* }}} */

src/BSON/Timestamp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ HashTable *php_phongo_timestamp_get_debug_info(zval *object, int *is_temp TSRMLS
162162

163163
array_init(&retval);
164164

165-
add_assoc_long_ex(&retval, ZEND_STRS("increment"), intern->increment);
166-
add_assoc_long_ex(&retval, ZEND_STRS("timestamp"), intern->timestamp);
165+
ADD_ASSOC_LONG_EX(&retval, "increment", intern->increment);
166+
ADD_ASSOC_LONG_EX(&retval, "timestamp", intern->timestamp);
167167

168168
return Z_ARRVAL(retval);
169169
} /* }}} */

src/BSON/UTCDateTime.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,14 +195,14 @@ HashTable *php_phongo_utcdatetime_get_debug_info(zval *object, int *is_temp TSRM
195195

196196
#if SIZEOF_LONG == 4
197197
{
198-
char *tmp;
198+
char tmp[24];
199199
int tmp_len;
200200

201-
tmp_len = spprintf(&tmp, 0, "%" PRId64, intern->milliseconds);
202-
add_assoc_stringl_ex(&retval, ZEND_STRS("milliseconds"), tmp, tmp_len, 0);
201+
tmp_len = snprintf(tmp, sizeof(tmp), "%" PRId64, intern->milliseconds);
202+
ADD_ASSOC_STRINGL(&retval, "milliseconds", tmp, tmp_len);
203203
}
204204
#else
205-
add_assoc_long_ex(&retval, ZEND_STRS("milliseconds"), intern->milliseconds);
205+
ADD_ASSOC_LONG_EX(&retval, "milliseconds", intern->milliseconds);
206206
#endif
207207

208208
return Z_ARRVAL(retval);

src/MongoDB/Cursor.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ HashTable *php_phongo_cursor_get_debug_info(zval *object, int *is_temp TSRMLS_DC
280280
ADD_ASSOC_ZVAL_EX(&retval, "cursor", zcursor);
281281
#endif
282282
} else {
283-
add_assoc_null_ex(&retval, ZEND_STRS("cursor"));
283+
ADD_ASSOC_NULL_EX(&retval, "cursor");
284284
}
285285

286286
ADD_ASSOC_LONG_EX(&retval, "server_id", intern->server_id);

src/MongoDB/WriteResult.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,7 @@ HashTable *php_phongo_writeresult_get_debug_info(zval *object, int *is_temp TSRM
517517
ADD_ASSOC_ZVAL_EX(&retval, "writeConcernError", state.zchild);
518518
#endif
519519
} else {
520-
ADD_ASSOC_NULL_EX(&retval, ZEND_STRS("writeConcernError"));
520+
ADD_ASSOC_NULL_EX(&retval, "writeConcernError");
521521
}
522522

523523
if (intern->write_concern) {

0 commit comments

Comments
 (0)