r6880 accidentally backed out r6780. That's what I get for accepting
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sun, 29 Oct 2006 09:34:09 +0000 (09:34 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sun, 29 Oct 2006 09:34:09 +0000 (09:34 +0000)
source files from Mike rather than patches, and not adequately
checking the result...

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@6882 cda61777-01e9-0310-a592-d414129be87e

dsf.c

diff --git a/dsf.c b/dsf.c
index f4deb1e..207357d 100644 (file)
--- a/dsf.c
+++ b/dsf.c
@@ -60,17 +60,23 @@ done:
     sfree(inverse_elements);
 }
 
-int *snew_dsf(int size)
+void dsf_init(int *dsf, int size)
 {
     int i;
-    int *ret;
-    
-    ret = snewn(size, int);
+
     for (i = 0; i < size; i++) {
         /* Bottom bit of each element of this array stores whether that element
          * is opposite to its parent, which starts off as false */
-        ret[i] = i << 1; 
+        dsf[i] = i << 1;
     }
+}
+
+int *snew_dsf(int size)
+{
+    int *ret;
+    
+    ret = snewn(size, int);
+    dsf_init(ret, size);
 
     /*print_dsf(ret, size); */