@@ -599,13 +599,13 @@ static void firebird_handle_closer(pdo_dbh_t *dbh) /* {{{ */
599
599
}
600
600
601
601
if (H -> date_format ) {
602
- zend_string_release_ex (H -> date_format , false );
602
+ pefree (H -> date_format , dbh -> is_persistent );
603
603
}
604
604
if (H -> time_format ) {
605
- zend_string_release_ex (H -> time_format , false );
605
+ pefree (H -> time_format , dbh -> is_persistent );
606
606
}
607
607
if (H -> timestamp_format ) {
608
- zend_string_release_ex (H -> timestamp_format , false );
608
+ pefree (H -> timestamp_format , dbh -> is_persistent );
609
609
}
610
610
611
611
if (H -> einfo .errmsg ) {
@@ -1091,9 +1091,11 @@ static bool pdo_firebird_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val
1091
1091
return false;
1092
1092
}
1093
1093
if (H -> date_format ) {
1094
- zend_string_release_ex (H -> date_format , false);
1094
+ pefree (H -> date_format , dbh -> is_persistent );
1095
+ H -> date_format = NULL ;
1095
1096
}
1096
- H -> date_format = str ;
1097
+ H -> date_format = pestrndup (ZSTR_VAL (str ), ZSTR_LEN (str ),dbh -> is_persistent );
1098
+ zend_string_release_ex (str , 0 );
1097
1099
}
1098
1100
return true;
1099
1101
@@ -1104,9 +1106,11 @@ static bool pdo_firebird_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val
1104
1106
return false;
1105
1107
}
1106
1108
if (H -> time_format ) {
1107
- zend_string_release_ex (H -> time_format , false);
1109
+ pefree (H -> time_format , dbh -> is_persistent );
1110
+ H -> time_format = NULL ;
1108
1111
}
1109
- H -> time_format = str ;
1112
+ H -> time_format = pestrndup (ZSTR_VAL (str ), ZSTR_LEN (str ),dbh -> is_persistent );
1113
+ zend_string_release_ex (str , 0 );
1110
1114
}
1111
1115
return true;
1112
1116
@@ -1117,9 +1121,11 @@ static bool pdo_firebird_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val
1117
1121
return false;
1118
1122
}
1119
1123
if (H -> timestamp_format ) {
1120
- zend_string_release_ex (H -> timestamp_format , false);
1124
+ pefree (H -> timestamp_format , dbh -> is_persistent );
1125
+ H -> timestamp_format = NULL ;
1121
1126
}
1122
- H -> timestamp_format = str ;
1127
+ H -> timestamp_format = pestrndup (ZSTR_VAL (str ), ZSTR_LEN (str ),dbh -> is_persistent );
1128
+ zend_string_release_ex (str , 0 );
1123
1129
}
1124
1130
return true;
1125
1131
@@ -1240,27 +1246,15 @@ static int pdo_firebird_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val)
1240
1246
return 1 ;
1241
1247
1242
1248
case PDO_FB_ATTR_DATE_FORMAT :
1243
- if (H -> date_format ) {
1244
- ZVAL_STR_COPY (val , H -> date_format );
1245
- } else {
1246
- ZVAL_STRING (val , PDO_FB_DEF_DATE_FMT );
1247
- }
1249
+ ZVAL_STRING (val , H -> date_format ? H -> date_format : PDO_FB_DEF_DATE_FMT );
1248
1250
return 1 ;
1249
1251
1250
1252
case PDO_FB_ATTR_TIME_FORMAT :
1251
- if (H -> time_format ) {
1252
- ZVAL_STR_COPY (val , H -> time_format );
1253
- } else {
1254
- ZVAL_STRING (val , PDO_FB_DEF_TIME_FMT );
1255
- }
1253
+ ZVAL_STRING (val , H -> time_format ? H -> time_format : PDO_FB_DEF_TIME_FMT );
1256
1254
return 1 ;
1257
1255
1258
1256
case PDO_FB_ATTR_TIMESTAMP_FORMAT :
1259
- if (H -> timestamp_format ) {
1260
- ZVAL_STR_COPY (val , H -> timestamp_format );
1261
- } else {
1262
- ZVAL_STRING (val , PDO_FB_DEF_TIMESTAMP_FMT );
1263
- }
1257
+ ZVAL_STRING (val , H -> timestamp_format ? H -> timestamp_format : PDO_FB_DEF_TIMESTAMP_FMT );
1264
1258
return 1 ;
1265
1259
1266
1260
case PDO_FB_TRANSACTION_ISOLATION_LEVEL :
0 commit comments