ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/rhoptimize.c
(Generate patch)

Comparing ray/src/hd/rhoptimize.c (file contents):
Revision 3.9 by greg, Tue May 13 17:58:33 2003 UTC vs.
Revision 3.15 by schorsch, Sun Jul 27 22:12:02 2003 UTC

# Line 7 | Line 7 | static const char      RCSid[] = "$Id$";
7   *      11/4/98         Greg Ward Larson
8   */
9  
10 #include "holo.h"
11
10   #include <signal.h>
11 + #include <string.h>
12  
13 + #include "rtprocess.h" /* getpid() */
14 + #include "holo.h"
15 +
16   #ifndef BKBSIZE
17   #define BKBSIZE         256             /* beam clump size (kilobytes) */
18   #endif
# Line 19 | Line 21 | char   *progname;
21   char    tempfile[128];
22   int     dupchecking = 0;
23  
22 extern char     *rindex();
24   extern long     rhinitcopy();
25  
26  
# Line 37 | Line 38 | char   *argv[];
38                  dupchecking++;
39                  argv++; argc--;
40          }
41 <        if (argc < 1 | argc > 2) {
41 >        if ((argc < 1) | (argc > 2)) {
42                  fprintf(stderr, "Usage: %s [-u] input.hdk [output.hdk]\n",
43                                  progname);
44                  exit(1);
# Line 52 | Line 53 | char   *argv[];
53                          error(SYSTEM, errmsg);
54                  }
55                  strcpy(tempfile, inpname);
56 <                if ((outname = rindex(tempfile, '/')) != NULL)
56 >                if ((outname = strrchr(tempfile, '/')) != NULL)
57                          outname++;
58                  else
59                          outname = tempfile;
# Line 67 | Line 68 | char   *argv[];
68                  lseek(hdfd[0], (off_t)nextipos, 0);
69                  read(hdfd[0], (char *)&nextipos, sizeof(nextipos));
70                                          /* get output position; set last */
71 <                thisopos = lseek(hdfd[1], (off_t)0L, 2);
71 >                thisopos = lseek(hdfd[1], (off_t)0, 2);
72                  if (lastopos > 0L) {
73                          lseek(hdfd[1], (off_t)lastopos, 0);
74                          write(hdfd[1], (char *)&thisopos, sizeof(thisopos));
75 <                        lseek(hdfd[1], (off_t)0L, 2);
75 >                        lseek(hdfd[1], (off_t)0, 2);
76                  }
77                  lastopos = thisopos;
78                  thisopos = 0L;          /* write place holder */
# Line 157 | Line 158 | int    n;
158                                          rva[i].r[1][0]==rva[j].r[1][0] &&
159                                          rva[i].r[1][1]==rva[j].r[1][1] ) {
160                                  n--;            /* swap duplicate with end */
161 <                                copystruct(&rtmp, rva+n);
162 <                                copystruct(rva+n, rva+i);
163 <                                copystruct(rva+i, &rtmp);
161 >                                rtmp = *(rva+n);
162 >                                *(rva+n) = *(rva+i);
163 >                                *(rva+i) = rtmp;
164                                  i--;            /* recheck one we swapped */
165                          }
166          return(n);
# Line 172 | Line 173 | static int
173   bpcmp(b1p, b2p)                 /* compare beam positions on disk */
174   int     *b1p, *b2p;
175   {
176 <        register long   pdif = beamdir[*b1p].fo - beamdir[*b2p].fo;
176 >        register off_t  pdif = beamdir[*b1p].fo - beamdir[*b2p].fo;
177  
178          if (pdif < 0L) return(-1);
179          return(pdif > 0L);
# Line 196 | Line 197 | int    *bq, nb;
197                  bp = hdgetbeam(hp, bq[i]);
198                  DCHECK(bp==NULL, CONSISTENCY, "empty beam in xferclump");
199                  n = dupchecking ? nuniq(hdbray(bp),bp->nrm) : bp->nrm;
200 <                bcopy((void *)hdbray(bp), (void *)hdnewrays(hout,bq[i],n),
200 >                memcpy((void *)hdnewrays(hout,bq[i],n),(void *)hdbray(bp),
201                                  n*sizeof(RAYVAL));
202                  hdfreebeam(hp, bq[i]);
203          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines