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() */
openSUSE Build Service is sponsored by