@@ -964,28 +964,38 @@ PHP_METHOD(vtiful_xls, stringFromColumnIndex)
964964 Z_PARAM_LONG (index )
965965 ZEND_PARSE_PARAMETERS_END ();
966966
967+ char one [1 ];
968+
967969 if (index < 26 ) {
968970 current = index + 65 ;
969- result = zend_string_init ((char * )(& current ), 1 , 0 );
970- RETURN_STR (result );
971+ one [0 ] = current ;
972+
973+ ZVAL_STRINGL (return_value , one , 1 );
974+ return ;
971975 }
972976
973977 if (index < 702 ) {
974978 current = index / 26 + 64 ;
975- result = zend_string_init ((char * )(& current ), 1 , 0 );
979+ one [0 ] = current ;
980+ result = zend_string_init (one , 1 , 0 );
976981
977982 current = index % 26 + 65 ;
978- RETURN_STR (str_pick_up (result , (char * )(& current )));
983+ one [0 ] = current ;
984+ ZVAL_STR (return_value , str_pick_up (result , one , 1 ));
985+ return ;
979986 }
980987
981988 current = (index - 26 ) / 676 + 64 ;
982- result = zend_string_init ((char * )(& current ), 1 , 0 );
989+ one [0 ] = current ;
990+ result = zend_string_init (one , 1 , 0 );
983991
984992 current = ((index - 26 ) % 676 ) / 26 + 65 ;
985- result = str_pick_up (result , (char * )(& current ));
993+ one [0 ] = current ;
994+ result = str_pick_up (result , one , 1 );
986995
987996 current = index % 26 + 65 ;
988- RETURN_STR (str_pick_up (result , (char * )(& current )));
997+ one [0 ] = current ;
998+ ZVAL_STR (return_value , str_pick_up (result , one , 1 ));
989999}
9901000/* }}} */
9911001
0 commit comments