DBG_INF_FMT("Adding [%s][%s]", key, value);
{
zval attrz;
- zend_string *str = zend_string_init(key, strlen(key), 1);
- GC_MAKE_PERSISTENT_LOCAL(str);
- ZVAL_NEW_STR(&attrz, zend_string_init(value, strlen(value), conn->persistent));
- GC_MAKE_PERSISTENT_LOCAL(Z_COUNTED(attrz));
+ zend_string *str;
+
+ if (conn->persistent) {
+ str = zend_string_init(key, strlen(key), 1);
+ GC_MAKE_PERSISTENT_LOCAL(str);
+ ZVAL_NEW_STR(&attrz, zend_string_init(value, strlen(value), 1));
+ GC_MAKE_PERSISTENT_LOCAL(Z_COUNTED(attrz));
+ } else {
+ str = zend_string_init(key, strlen(key), 0);
+ ZVAL_NEW_STR(&attrz, zend_string_init(value, strlen(value), 0));
+ }
zend_hash_update(conn->options->connect_attr, str, &attrz);
zend_string_release_ex(str, 1);
}