File scarse-0.4-alpha-gcc4.patch of Package scarse
--- src/scarse.h 2005-10-20 08:14:59.000000000 +0200
+++ src/scarse.h 2005-11-17 19:36:07.000000000 +0100
@@ -113,7 +113,7 @@
void vgamma(double src[], double dest[], unsigned long n, double gamma);
double **matrix(unsigned long nr, unsigned long nc);
-double **grow_matrix(double **m, unsigned long nr, unsigned long nc);
+double **grow_matrix(void *m, unsigned long nr, unsigned long nc);
void free_matrix(double **m);
void sort(unsigned long n, double arr[]);
--- src/util.c 2005-10-20 08:15:00.000000000 +0200
+++ src/util.c 2005-11-17 19:29:46.000000000 +0100
@@ -294,32 +294,35 @@
double **matrix(unsigned long nr, unsigned long nc)
{
register unsigned long i;
- register double **m = (double **)xmalloc((size_t)(nr*sizeof(double *)+sizeof(unsigned long)));
+ register void *m = (double **)xmalloc((size_t)(nr*sizeof(double *)+sizeof(unsigned long)));
- *(((unsigned long *)(m))++) = nr;
+ *((unsigned long *)m) = nr;
+ m += sizeof(unsigned long);
- for (i = 0; i < nr; i++) m[i] = vector(nc);
+ for (i = 0; i < nr; i++) ((double **)m)[i] = vector(nc);
- return m;
+ return (double **)m;
}
/* grow a matrix to subscript range m[0..nr][0..nc] */
-double **grow_matrix(double **m, unsigned long nr, unsigned long nc)
+double **grow_matrix(void *m, unsigned long nr, unsigned long nc)
{
register unsigned long i;
- unsigned long old_nr = *(--((unsigned long *)(m)));
+ m -= sizeof(unsigned long);
+ unsigned long old_nr = *((unsigned long *)m);
/* Reallocate row index if necessary */
if (nr != old_nr)
m = (double **)xrealloc(m, (size_t)(nr*sizeof(double *)+sizeof(unsigned long)));
- *(((unsigned long *)(m))++) = nr;
+ *((unsigned long *)m) = nr;
+ m += sizeof(unsigned long);
/* Reallocate rows */
- for (i = 0; i < old_nr; i++) m[i] = grow_vector(m[i], nc);
- for (i = old_nr; i < nr; i++) m[i] = vector(nc);
+ for (i = 0; i < old_nr; i++) ((double **)m)[i] = grow_vector(((double **)m)[i], nc);
+ for (i = old_nr; i < nr; i++) ((double **)m)[i] = vector(nc);
- return m;
+ return (double **)m;
}
/* free a matrix allocated by matrix() */