@@ -178,10 +178,7 @@ PHP_FUNCTION(opencv_merge){
178178 unsigned long channel_count = zend_hash_num_elements (Z_ARRVAL_P (channels_zval));
179179 std::vector<Mat> channels;
180180 if (channel_count == 0 ){
181- char *error_message = (char *)malloc (strlen (" array lenght must be >=1" ) + 1 );
182- strcpy (error_message," array lenght must be >=1" );
183- opencv_throw_exception (error_message);
184- free (error_message);
181+ opencv_throw_exception (" array lenght must be >=1" );
185182 RETURN_NULL ();
186183 }
187184
@@ -198,10 +195,7 @@ PHP_FUNCTION(opencv_merge){
198195 array_val_zval = Z_REFVAL_P (array_val_zval);
199196 goto again;
200197 } else {
201- char *error_message = (char *)malloc (strlen (" array value just Mat object" ) + 1 );
202- strcpy (error_message," array value just Mat object" );
203- opencv_throw_exception (error_message);
204- free (error_message);
198+ opencv_throw_exception (" array value just Mat object." );
205199 RETURN_NULL ();
206200 }
207201 }ZEND_HASH_FOREACH_END ();
@@ -298,11 +292,11 @@ PHP_FUNCTION(opencv_copy_make_border){
298292 */
299293PHP_FUNCTION (opencv_dft){
300294 zval *src_zval, *array_val_zval, *dst_zval;
301- long flags, nonzero_rows;
295+ long flags = 0 , nonzero_rows = 0 ;
302296 opencv_mat_object *dst_object;
303297
304298
305- if (zend_parse_parameters (ZEND_NUM_ARGS (), " Oz" , &src_zval, opencv_mat_ce, &dst_zval) == FAILURE) {
299+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " Oz|ll " , &src_zval, opencv_mat_ce, &dst_zval, &flags, &nonzero_rows ) == FAILURE) {
306300 RETURN_NULL ();
307301 }
308302
@@ -395,21 +389,17 @@ PHP_FUNCTION(opencv_absdiff){
395389 int flag = 0 ;// dst 1 mat,0 scalar
396390
397391 if (Z_TYPE_P (src1_zval) != IS_OBJECT || Z_TYPE_P (src2_zval) != IS_OBJECT){
398- char *error_message = (char *)malloc (strlen (" src1 and src1 parameter must be Mat or Scalar object." ) + 1 );
399- strcpy (error_message," src1 parameter must be Mat or Scalar object." );
400- opencv_throw_exception (error_message);// throw exception
401- free (error_message);
392+ opencv_throw_exception (" src1 and src2 parameter must be Mat or Scalar object." );
393+ RETURN_NULL ();
402394 }
403395
404396 if (Z_OBJCE_P (src1_zval) == opencv_mat_ce){
405397 src1_mat_object = Z_PHP_MAT_OBJ_P (src1_zval);
406398 }else if (Z_OBJCE_P (src1_zval) == opencv_scalar_ce){
407399 src1_scalar_object = Z_PHP_SCALAR_OBJ_P (src1_zval);
408400 }else {
409- char *error_message = (char *)malloc (strlen (" src1 parameter must be Mat or Scalar object." ) + 1 );
410- strcpy (error_message," src1 parameter must be Mat or Scalar object." );
411- opencv_throw_exception (error_message);// throw exception
412- free (error_message);
401+ opencv_throw_exception (" src1 parameter must be Mat or Scalar object." );
402+ RETURN_NULL ();
413403 }
414404
415405 if (Z_OBJCE_P (src2_zval) == opencv_mat_ce){
@@ -425,10 +415,8 @@ PHP_FUNCTION(opencv_absdiff){
425415 flag = 2 ;
426416 }
427417 }else {
428- char *error_message = (char *)malloc (strlen (" src2 parameter must be Mat or Scalar object." ) + 1 );
429- strcpy (error_message," src2 parameter must be Mat or Scalar object." );
430- opencv_throw_exception (error_message);// throw exception
431- free (error_message);
418+ opencv_throw_exception (" src2 parameter must be Mat or Scalar object." );
419+ RETURN_NULL ();
432420 }
433421
434422 zval *dst_real_zval = Z_REFVAL_P (dst_zval);
@@ -475,6 +463,8 @@ PHP_FUNCTION(opencv_absdiff){
475463 opencv_mat_update_property_by_c_mat (dst_real_zval, dst_mat_object->mat );
476464 break ;
477465 default :
466+ opencv_throw_exception (" absdiff function error." );
467+ RETURN_NULL ();
478468 break ;
479469 }
480470 }
@@ -507,10 +497,7 @@ PHP_FUNCTION(opencv_add){
507497 src1_scalar_object = Z_PHP_SCALAR_OBJ_P (src1_zval);
508498 }
509499 } else {
510- char *error_message = (char *)malloc (strlen (" src1 parameter must be Mat or Scalar object." ) + 1 );
511- strcpy (error_message," src1 parameter must be Mat or Scalar object." );
512- opencv_throw_exception (error_message);// throw exception
513- free (error_message);
500+ opencv_throw_exception (" src1 parameter must be Mat or Scalar object." );
514501 }
515502
516503 if (Z_TYPE_P (src2_zval) == IS_OBJECT && (Z_OBJCE_P (src2_zval) == opencv_mat_ce || Z_OBJCE_P (src2_zval) == opencv_scalar_ce)){
@@ -520,10 +507,7 @@ PHP_FUNCTION(opencv_add){
520507 src2_scalar_object = Z_PHP_SCALAR_OBJ_P (src2_zval);
521508 }
522509 } else {
523- char *error_message = (char *)malloc (strlen (" src2 parameter must be Mat or Scalar object." ) + 1 );
524- strcpy (error_message," src2 parameter must be Mat or Scalar object." );
525- opencv_throw_exception (error_message);// throw exception
526- free (error_message);
510+ opencv_throw_exception (" src2 parameter must be Mat or Scalar object." );// throw exception
527511 }
528512
529513 zval *dst_real_zval = Z_REFVAL_P (dst_zval);
0 commit comments