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.8 by schorsch, Sun Jul 27 22:12:01 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 + #include "rterror.h"
15 +
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 +        if (s != NULL)
44 +                free((void *)s);
45 + }
46 +
47 + #else
48 +
49   /*
50   *  Save unshared strings, packing them together into
51   *  large blocks to optimize paging in VM environments.
52   */
53  
54 < #define  NULL           0
13 <
14 < #ifdef  BIGMEM
54 > #ifdef  SMLMEM
55   #ifndef  MINBLOCK
56 < #define  MINBLOCK       (1<<12)         /* minimum allocation block size */
56 > #define  MINBLOCK       (1<<10)         /* minimum allocation block size */
57   #endif
58   #ifndef  MAXBLOCK
59 < #define  MAXBLOCK       (1<<16)         /* maximum allocation block size */
59 > #define  MAXBLOCK       (1<<14)         /* maximum allocation block size */
60   #endif
61   #else
62   #ifndef  MINBLOCK
63 < #define  MINBLOCK       (1<<10)         /* minimum allocation block size */
63 > #define  MINBLOCK       (1<<12)         /* minimum allocation block size */
64   #endif
65   #ifndef  MAXBLOCK
66 < #define  MAXBLOCK       (1<<14)         /* maximum allocation block size */
66 > #define  MAXBLOCK       (1<<16)         /* maximum allocation block size */
67   #endif
68   #endif
69  
# Line 62 | Line 102 | register char  *s;
102   }
103  
104  
105 + void
106   freeqstr(s)                     /* free a private string (not recommended) */
107   char  *s;
108   {
109          bfree(s, strlen(s)+1);
110   }
111 +
112 + #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines