Lines Matching refs:rm

59 static void preen (/*MOD*/RangeMap* rm);
60 static Word find ( RangeMap* rm, UWord key );
61 static void split_at ( /*MOD*/RangeMap* rm, UWord key );
62 static void show ( RangeMap* rm );
73 RangeMap* rm = alloc_fn(cc, sizeof(RangeMap));
74 vg_assert(rm);
75 rm->alloc = alloc_fn;
76 rm->cc = cc;
77 rm->free = free_fn;
78 rm->ranges = VG_(newXA)( alloc_fn, cc, free_fn, sizeof(Range) );
79 vg_assert(rm->ranges);
85 Word i = VG_(addToXA)(rm->ranges, &r);
87 vg_assert(VG_(sizeXA)(rm->ranges) == 1);
89 return rm;
92 void VG_(deleteRangeMap) ( RangeMap* rm )
94 vg_assert(rm);
95 vg_assert(rm->free);
96 vg_assert(rm->ranges);
97 VG_(deleteXA)(rm->ranges);
98 rm->free(rm);
101 void VG_(bindRangeMap) ( RangeMap* rm,
105 split_at(rm, key_min);
107 split_at(rm, key_max + 1);
109 iMin = find(rm, key_min);
110 iMax = find(rm, key_max);
112 Range* rng = VG_(indexXA)(rm->ranges, i);
115 preen(rm);
119 /*OUT*/UWord* val, RangeMap* rm, UWord key )
121 Word i = find(rm, key);
122 Range* rng = (Range*)VG_(indexXA)(rm->ranges, i);
128 Word VG_(sizeRangeMap) ( RangeMap* rm )
130 vg_assert(rm && rm->ranges);
131 return VG_(sizeXA)(rm->ranges);
135 /*OUT*/UWord* val, RangeMap* rm, Word ix )
137 vg_assert(rm && rm->ranges);
138 Range* rng = (Range*)VG_(indexXA)(rm->ranges, ix);
146 static void preen (/*MOD*/RangeMap* rm)
149 XArray* ranges = rm->ranges;
163 static Word find ( RangeMap* rm, UWord key )
165 XArray* ranges = rm->ranges;
186 static void split_at ( /*MOD*/RangeMap* rm, UWord key )
188 XArray* ranges = rm->ranges;
189 Word i = find(rm, key);
203 static void show ( RangeMap* rm )
206 VG_(printf)("<< %ld entries:\n", VG_(sizeXA)(rm->ranges) );
207 for (i = 0; i < VG_(sizeXA)(rm->ranges); i++) {
208 Range* rng = (Range*)VG_(indexXA)(rm->ranges, i);