nelem = zend_hash_num_elements(Z_ARRVAL_P(hash_matrix));
if (nelem != 3) {
- php_error_docref(NULL, E_WARNING, "You must have 3x3 array");
- RETURN_FALSE;
+ zend_throw_error(NULL, "Convolution matrix must be a 3x3 array");
+ return;
}
for (i=0; i<3; i++) {
if ((var = zend_hash_index_find(Z_ARRVAL_P(hash_matrix), (i))) != NULL && Z_TYPE_P(var) == IS_ARRAY) {
if (zend_hash_num_elements(Z_ARRVAL_P(var)) != 3 ) {
- php_error_docref(NULL, E_WARNING, "You must have 3x3 array");
- RETURN_FALSE;
+ zend_throw_error(NULL, "Convolution matrix must be a 3x3 array, matrix[%d] only has %d elements", i, zend_hash_num_elements(Z_ARRVAL_P(var)));
+ return;
}
for (j=0; j<3; j++) {
if ((var2 = zend_hash_index_find(Z_ARRVAL_P(var), j)) != NULL) {
matrix[i][j] = (float) zval_get_double(var2);
} else {
- php_error_docref(NULL, E_WARNING, "You must have a 3x3 matrix");
- RETURN_FALSE;
+ zend_throw_error(NULL, "Convolution matrix must be a 3x3 array, matrix[%d][%d] cannot be found (missing integer key)", i, j);
+ return;
}
}
}
?>
--FILE--
<?php
+require __DIR__ . '/func.inc';
+
$image = imagecreatetruecolor(180, 30);
// Writes the text and apply a gaussian blur on the image
array(2.0, 4.0, 2.0)
);
-var_dump(imageconvolution($image, $gaussian, 16, 0));
+trycatch_dump(
+ fn() => imageconvolution($image, $gaussian, 16, 0)
+);
+
?>
---EXPECTF--
-Warning: imageconvolution(): You must have 3x3 array in %s on line %d
-bool(false)
+--EXPECT--
+!! [Error] Convolution matrix must be a 3x3 array
?>
--FILE--
<?php
+require __DIR__ . '/func.inc';
+
$image = imagecreatetruecolor(180, 30);
// Writes the text and apply a gaussian blur on the image
array(1.0, 2.0)
);
-var_dump(imageconvolution($image, $gaussian, 16, 0));
+$gaussian_bad_key = array(
+ array(1.0, 2.0, 1.0),
+ array(2.0, 4.0, 2.0),
+ array(1.0, 2.0, 'x' => 1.0)
+);
+
+trycatch_dump(
+ fn() => imageconvolution($image, $gaussian, 16, 0),
+ fn() => imageconvolution($image, $gaussian_bad_key, 16, 0)
+);
+
?>
---EXPECTF--
-Warning: imageconvolution(): You must have 3x3 array in %s on line %d
-bool(false)
+--EXPECT--
+!! [Error] Convolution matrix must be a 3x3 array, matrix[2] only has 2 elements
+!! [Error] Convolution matrix must be a 3x3 array, matrix[2][2] cannot be found (missing integer key)