/[bison]/bison/lib/bitsetv.c
ViewVC logotype

Diff of /bison/lib/bitsetv.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by akim, Mon Sep 30 12:50:49 2002 UTC revision 1.6 by eggert, Wed Oct 2 07:54:52 2002 UTC
# Line 30  Software Foundation, 59 Temple Place - S Line 30  Software Foundation, 59 Temple Place - S
30     type TYPE.  */     type TYPE.  */
31  bitset *  bitset *
32  bitsetv_alloc (n_vecs, n_bits, type)  bitsetv_alloc (n_vecs, n_bits, type)
33       unsigned int n_vecs;       bitset_bindex n_vecs;
34       unsigned int n_bits;       bitset_bindex n_bits;
35       enum bitset_type type;       enum bitset_type type;
36  {  {
37    unsigned int vector_bytes;    size_t vector_bytes;
38    unsigned int bytes;    size_t bytes;
39    bitset *bsetv;    bitset *bsetv;
40    unsigned int i;    bitset_bindex i;
41        
42    /* Determine number of bytes for each set.  */    /* Determine number of bytes for each set.  */
43    bytes = bitset_bytes (type, n_bits);    bytes = bitset_bytes (type, n_bits);
44    
45      /* If size calculation overflows, memory is exhausted.  */
46      if (BITSET_SIZE_MAX / (sizeof (bitset) + bytes) <= n_vecs)
47        xalloc_die ();
48        
49    /* Allocate vector table at head of bitset array.  */    /* Allocate vector table at head of bitset array.  */
50    vector_bytes = (n_vecs + 1) * sizeof (bitset);    vector_bytes = (n_vecs + 1) * sizeof (bitset);
# Line 63  bitsetv_alloc (n_vecs, n_bits, type) Line 67  bitsetv_alloc (n_vecs, n_bits, type)
67     attribute hints specified by ATTR.  */     attribute hints specified by ATTR.  */
68  bitset *  bitset *
69  bitsetv_create (n_vecs, n_bits, attr)  bitsetv_create (n_vecs, n_bits, attr)
70       unsigned int n_vecs;       bitset_bindex n_vecs;
71       unsigned int n_bits;       bitset_bindex n_bits;
72       unsigned int attr;       unsigned int attr;
73  {  {
74    enum bitset_type type;    enum bitset_type type;
# Line 79  void Line 83  void
83  bitsetv_free (bsetv)  bitsetv_free (bsetv)
84       bitset *bsetv;       bitset *bsetv;
85  {  {
86    unsigned int i;    bitset_bindex i;
87    
88    for (i = 0; bsetv[i]; i++)    for (i = 0; bsetv[i]; i++)
89        BITSET_FREE_ (bsetv[i]);        BITSET_FREE_ (bsetv[i]);
# Line 92  void Line 96  void
96  bitsetv_zero (bsetv)  bitsetv_zero (bsetv)
97       struct bitset_struct **bsetv;       struct bitset_struct **bsetv;
98  {  {
99    unsigned int i;    bitset_bindex i;
100        
101    for (i = 0; bsetv[i]; i++)    for (i = 0; bsetv[i]; i++)
102      bitset_zero (bsetv[i]);      bitset_zero (bsetv[i]);
# Line 104  void Line 108  void
108  bitsetv_ones (bsetv)  bitsetv_ones (bsetv)
109       bitset *bsetv;       bitset *bsetv;
110  {  {
111    unsigned int i;    bitset_bindex i;
112        
113    for (i = 0; bsetv[i]; i++)    for (i = 0; bsetv[i]; i++)
114      bitset_ones (bsetv[i]);      bitset_ones (bsetv[i]);
# Line 117  void Line 121  void
121  bitsetv_transitive_closure (bsetv)  bitsetv_transitive_closure (bsetv)
122       bitset *bsetv;       bitset *bsetv;
123  {  {
124    unsigned int i;    bitset_bindex i;
125    unsigned int j;    bitset_bindex j;
126    
127    for (i = 0; bsetv[i]; i++)    for (i = 0; bsetv[i]; i++)
128      for (j = 0; bsetv[j]; j++)      for (j = 0; bsetv[j]; j++)
# Line 134  bitsetv_transitive_closure (bsetv) Line 138  bitsetv_transitive_closure (bsetv)
138  void  void
139  bitsetv_reflexive_transitive_closure (bitsetv bsetv)  bitsetv_reflexive_transitive_closure (bitsetv bsetv)
140  {  {
141    int i;    bitset_bindex i;
142    
143    bitsetv_transitive_closure (bsetv);    bitsetv_transitive_closure (bsetv);
144    for (i = 0; bsetv[i]; i++)    for (i = 0; bsetv[i]; i++)
# Line 150  bitsetv_dump (file, title, subtitle, bse Line 154  bitsetv_dump (file, title, subtitle, bse
154       const char *title, *subtitle;       const char *title, *subtitle;
155       bitset *bsetv;       bitset *bsetv;
156  {  {
157    unsigned int i;    bitset_windex i;
158        
159    fprintf (file, "%s\n", title);    fprintf (file, "%s\n", title);
160    for (i = 0; bsetv[i]; i++)    for (i = 0; bsetv[i]; i++)
161      {      {
162        fprintf (file, "%s %d\n", subtitle, i);        fprintf (file, "%s %lu\n", subtitle, (unsigned long) i);
163        bitset_dump (file, bsetv[i]);        bitset_dump (file, bsetv[i]);
164      }      }
165        
# Line 167  void Line 171  void
171  debug_bitsetv (bsetv)  debug_bitsetv (bsetv)
172       bitset *bsetv;       bitset *bsetv;
173  {  {
174    unsigned int i;    bitset_windex i;
175        
176    for (i = 0; bsetv[i]; i++)    for (i = 0; bsetv[i]; i++)
177      {      {
178        fprintf (stderr, "%d: ", i);        fprintf (stderr, "%lu: ", (unsigned long) i);
179        debug_bitset (bsetv[i]);        debug_bitset (bsetv[i]);
180      }      }
181        

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26