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.9 by schorsch, Wed Jul 30 10:11:06 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 "rtio.h"
15 + #include "rterror.h"
16 +
17 +
18 + #if 1
19 +
20 + char *
21 + savqstr(s)                      /* save a private string */
22 + register char  *s;
23 + {
24 +        register char  *cp;
25 +        char  *newp;
26 +
27 +        for (cp = s; *cp++; )                   /* compute strlen()+1 */
28 +                ;
29 +        newp = (char *)malloc(cp-s);
30 +        if (newp == NULL) {
31 +                eputs("out of memory in savqstr");
32 +                quit(1);
33 +        }
34 +        for (cp = newp; (*cp++ = *s++); )               /* inline strcpy() */
35 +                ;
36 +        return(newp);                           /* return new location */
37 + }
38 +
39 +
40 + void
41 + freeqstr(s)                     /* free a private string */
42 + char  *s;
43 + {
44 +        if (s != NULL)
45 +                free((void *)s);
46 + }
47 +
48 + #else
49 +
50   /*
51   *  Save unshared strings, packing them together into
52   *  large blocks to optimize paging in VM environments.
53   */
54  
55 < #define  NULL           0
13 <
14 < #ifdef  BIGMEM
55 > #ifdef  SMLMEM
56   #ifndef  MINBLOCK
57 < #define  MINBLOCK       (1<<12)         /* minimum allocation block size */
57 > #define  MINBLOCK       (1<<10)         /* minimum allocation block size */
58   #endif
59   #ifndef  MAXBLOCK
60 < #define  MAXBLOCK       (1<<16)         /* maximum allocation block size */
60 > #define  MAXBLOCK       (1<<14)         /* maximum allocation block size */
61   #endif
62   #else
63   #ifndef  MINBLOCK
64 < #define  MINBLOCK       (1<<10)         /* minimum allocation block size */
64 > #define  MINBLOCK       (1<<12)         /* minimum allocation block size */
65   #endif
66   #ifndef  MAXBLOCK
67 < #define  MAXBLOCK       (1<<14)         /* maximum allocation block size */
67 > #define  MAXBLOCK       (1<<16)         /* maximum allocation block size */
68   #endif
69   #endif
70  
# Line 62 | Line 103 | register char  *s;
103   }
104  
105  
106 + void
107   freeqstr(s)                     /* free a private string (not recommended) */
108   char  *s;
109   {
110          bfree(s, strlen(s)+1);
111   }
112 +
113 + #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines