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

Comparing ray/src/common/savqstr.c (file contents):
Revision 2.2 by greg, Wed Jan 27 20:23:49 1993 UTC vs.
Revision 2.4 by greg, Tue Feb 25 02:47:22 2003 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1993 Regents of the University of California */
2
1   #ifndef lint
2 < static char SCCSid[] = "$SunId$ LBL";
2 > static const char       RCSid[] = "$Id$";
3   #endif
4 + /*
5 + *  Save unshared strings.
6 + *
7 + *  External symbols declared in standard.h
8 + */
9  
10 + #include "copyright.h"
11 +
12 + #include <stdlib.h>
13 +
14 + extern void     eputs();
15 + extern void     quit();
16 +
17 + #if 1
18 +
19 + char *
20 + savqstr(s)                      /* save a private string */
21 + register char  *s;
22 + {
23 +        register char  *cp;
24 +        char  *newp;
25 +
26 +        for (cp = s; *cp++; )                   /* compute strlen()+1 */
27 +                ;
28 +        newp = (char *)malloc(cp-s);
29 +        if (newp == NULL) {
30 +                eputs("out of memory in savqstr");
31 +                quit(1);
32 +        }
33 +        for (cp = newp; *cp++ = *s++; )         /* inline strcpy() */
34 +                ;
35 +        return(newp);                           /* return new location */
36 + }
37 +
38 +
39 + void
40 + freeqstr(s)                     /* free a private string */
41 + char  *s;
42 + {
43 +        free((void *)s);
44 + }
45 +
46 + #else
47 +
48   /*
49   *  Save unshared strings, packing them together into
50   *  large blocks to optimize paging in VM environments.
51   */
52  
12 #define  NULL           0
13
53   #ifdef  BIGMEM
54   #ifndef  MINBLOCK
55   #define  MINBLOCK       (1<<12)         /* minimum allocation block size */
# Line 62 | Line 101 | register char  *s;
101   }
102  
103  
104 + void
105   freeqstr(s)                     /* free a private string (not recommended) */
106   char  *s;
107   {
108          bfree(s, strlen(s)+1);
109   }
110 +
111 + #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines