#19775 [Opn->WFx]: PHP crashes when trying to access 2d int matrix returned from java

From: Date: Fri, 31 Oct 2003 02:11:18 +0000
Subject: #19775 [Opn->WFx]: PHP crashes when trying to access 2d int matrix returned from java
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-49717@lists.php.net to get a copy of this message
ID: 19775 Updated by: sniper@php.net Reported By: waazup at hotmail dot com -Status: Open +Status: Wont fix Bug Type: Java related Operating System: Windows XP Pro PHP Version: 4CVS New Comment: Won't be fixed in PHP 4. Previous Comments: ------------------------------------------------------------------------ [2003-08-21 08:20:50] sniper@php.net The Java stuff in PHP is totally unmaintained (and still experimental too). Maybe in PHP 5 it will actually work. ------------------------------------------------------------------------ [2002-10-05 16:55:57] waazup at hotmail dot com I used PHP 4.2.3 zip file for windows. The GD extension and the Java extension are used and the appropriate paths are set for in Java in the php.ini PHP is crashing when I try to get the value of a specific point in my 2 dimensional array. The error occurs on the second attempt in the same script to read from the array. Below I will include the java code used and the php code that calls the java object. Java Code: /** * Filter class designed to do computations for a php script * * @author (Peter Kroll) * @version (2002-10-02) */ public class Filter { /** * Constructor for objects of class Filter */ public Filter() { } /** * applyFilter * * @param * filterMatrix: 2 dimensional array of integers * imageMatrix: 2 dimensional array of integers * @return * newImageMatrix: 2 dimensional array of integers */ public int[][] applyFilter(double [][] filterMatrix, int filterDimension, int [][] imageMatrix, int imageSizeX, int imageSizeY) { int countX; int countY; double sum = 0; int posX; int posY; int pixelValue; int temp; int [][] newImageMatrix = new int[imageSizeX][imageSizeY]; // Apply filter to image for(countX = 0; countX < imageSizeX; countX++) { for(countY = 0; countY < imageSizeY; countY++) { sum = 0; for(posY = 0; posY < filterDimension; posY++) { for(posX = 0; posX < filterDimension; posX++) { if(countX - posX < 0 || countY - posY < 0) { pixelValue = 0; } else { pixelValue = imageMatrix[countX-posX][countY-posY]; sum = sum + imageMatrix[countX-posX][countY-posY] * filterMatrix[filterDimension - 1 - posX][filterDimension - 1 - posY]; } } } newImageMatrix[countX][countY] = (int) sum; } } return newImageMatrix; } } PHP code: // Apply filter to image $FilterObject = new Java("Filter"); $newImageMatrix = $FilterObject->applyFilter($filter, $filterDimension, $imageMatrix, $imageSizeX, $imageSizeY); $tempVal = $newImageMatrix[0][0]; print $tempVal . "<BR>\n"; $tempVal = $newImageMatrix[1][1]; print $tempVal . "<BR>\n"; The PHP code above is not my whole script but the part that calls Java and causes the error. Please note that the Java compiles fine and there are no errors in the PHP. The variables passed into the Java method are the same type as required by the Java method. I am able to read one value from the returned matrix and print it to the screen on the second attempt php crashes, this bug is reproducable 100% of the time. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=19775&edit=1

« previous php.bugs (#49717) next »