Update of /cvsroot/easycalc/easycalc/mlib
In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv24513
Modified Files:
cmatrix.c integ.c matrix.c
Log Message:
Replace call to stack_get_val2() with two calls to stack_get_val in order
to make the clean-up in case of error easier to see in the code.
Index: cmatrix.c
===================================================================
RCS file: /cvsroot/easycalc/easycalc/mlib/cmatrix.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** cmatrix.c 27 Sep 2006 13:36:19 -0000 1.27
--- cmatrix.c 28 Sep 2006 13:24:20 -0000 1.28
***************
*** 928,940 ****
{
CError err;
! CMatrix *a = NULL;
! CMatrix *b = NULL;
! CMatrix *m,*q;
Int16 i,j;
! err = stack_get_val2(stack,&a,&b,cmatrix);
if (err) {
! if (a) cmatrix_delete(a);
! if (b) cmatrix_delete(b);
return err;
}
--- 928,940 ----
{
CError err;
! CMatrix *a,*b,*m,*q;
Int16 i,j;
! err = stack_get_val(stack,&b,cmatrix);
! if (err)
! return err;
! err = stack_get_val(stack,&a,cmatrix);
if (err) {
! cmatrix_delete(b);
return err;
}
***************
*** 991,995 ****
err = stack_add_val(stack,&m,cmatrix);
cmatrix_delete(m);
!
return err;
}
--- 991,995 ----
err = stack_add_val(stack,&m,cmatrix);
cmatrix_delete(m);
!
return err;
}
Index: integ.c
===================================================================
RCS file: /cvsroot/easycalc/easycalc/mlib/integ.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** integ.c 27 Sep 2006 13:36:19 -0000 1.22
--- integ.c 28 Sep 2006 13:24:20 -0000 1.23
***************
*** 979,984 ****
double error = DEFAULT_ERROR;
double result;
! CodeStack *f1 = NULL;
! CodeStack *f2 = NULL;
CError err;
CodeStack *argarr = NULL;
--- 979,983 ----
double error = DEFAULT_ERROR;
double result;
! CodeStack *f1,*f2;
CError err;
CodeStack *argarr = NULL;
***************
*** 998,1004 ****
return c_badargcount;
! if ((err=stack_get_val2(stack,&f1,&f2,function))) {
! if (f1) stack_delete(f1);
! if (f2) stack_delete(f2);
goto error;
}
--- 997,1006 ----
return c_badargcount;
! err=stack_get_val(stack,&f2,function);
! if (err)
! goto error;
! err=stack_get_val(stack,&f1,function);
! if (err) {
! stack_delete(f2);
goto error;
}
Index: matrix.c
===================================================================
RCS file: /cvsroot/easycalc/easycalc/mlib/matrix.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -C2 -d -r1.31 -r1.32
*** matrix.c 27 Sep 2006 13:36:19 -0000 1.31
--- matrix.c 28 Sep 2006 13:24:20 -0000 1.32
***************
*** 1014,1026 ****
{
CError err;
! Matrix *a = NULL;
! Matrix *b = NULL;
! Matrix *m,*q;
Int16 i,j;
! err = stack_get_val2(stack,&a,&b,matrix);
if (err) {
! if (a) matrix_delete(a);
! if (b) matrix_delete(b);
return err;
}
--- 1014,1026 ----
{
CError err;
! Matrix *a,*b,*m,*q;
Int16 i,j;
! err = stack_get_val(stack,&b,matrix);
! if (err)
! return err;
! err = stack_get_val(stack,&a,matrix);
if (err) {
! matrix_delete(b);
return err;
}
|