@@ -34,44 +34,39 @@ class irc : public shape::data<irc,shape::ptr> {
34
34
35
35
irc (const irc &other, const shape::ptr &in_dp)
36
36
: shape::data<irc,shape::ptr>(other.task, other.align, other.sp,
37
- other.params, other. tables, in_dp),
37
+ other.tables, in_dp),
38
38
ircs (other.ircs) {}
39
39
40
40
irc (const irc &other,
41
41
const uint8_t *in_sp,
42
- const shape::type_param *in_params,
43
42
const rust_shape_tables *in_tables = NULL )
44
43
: shape::data<irc,shape::ptr>(other.task,
45
44
other.align,
46
45
in_sp,
47
- in_params,
48
46
in_tables ? in_tables : other.tables,
49
47
other.dp),
50
48
ircs (other.ircs) {}
51
49
52
50
irc (const irc &other,
53
51
const uint8_t *in_sp,
54
- const shape::type_param *in_params,
55
52
const rust_shape_tables *in_tables,
56
53
shape::ptr in_dp)
57
54
: shape::data<irc,shape::ptr>(other.task,
58
55
other.align,
59
56
in_sp,
60
- in_params,
61
57
in_tables,
62
58
in_dp),
63
59
ircs (other.ircs) {}
64
60
65
61
irc (rust_task *in_task,
66
62
bool in_align,
67
63
const uint8_t *in_sp,
68
- const shape::type_param *in_params,
69
64
const rust_shape_tables *in_tables,
70
65
uint8_t *in_data,
71
66
irc_map &in_ircs)
72
- : shape::data<irc,shape::ptr>(in_task, in_align, in_sp, in_params ,
73
- in_tables, in_data),
74
- ircs (in_ircs) {}
67
+ : shape::data<irc,shape::ptr>(in_task, in_align, in_sp,
68
+ in_tables, shape::ptr( in_data) ),
69
+ ircs (in_ircs) {}
75
70
76
71
77
72
void walk_vec2 (bool is_pod, std::pair<uint8_t *,uint8_t *> data_range) {
@@ -80,8 +75,8 @@ class irc : public shape::data<irc,shape::ptr> {
80
75
if (is_pod)
81
76
return ;
82
77
83
- irc sub (*this , data_range.first );
84
- shape::ptr data_end = sub.end_dp = data_range.second ;
78
+ irc sub (*this , shape::ptr ( data_range.first ) );
79
+ shape::ptr data_end = sub.end_dp = shape::ptr ( data_range.second ) ;
85
80
while (sub.dp < data_end) {
86
81
sub.walk_reset ();
87
82
// FIXME: shouldn't this be 'sub.align = true;'?
@@ -148,8 +143,7 @@ class irc : public shape::data<irc,shape::ptr> {
148
143
void walk_tydesc2 (char ) {
149
144
}
150
145
151
- void walk_res2 (const shape::rust_fn *dtor, unsigned n_params,
152
- const shape::type_param *params, const uint8_t *end_sp,
146
+ void walk_res2 (const shape::rust_fn *dtor, const uint8_t *end_sp,
153
147
bool live) {
154
148
while (this ->sp != end_sp) {
155
149
this ->walk ();
214
208
irc::walk_variant2 (shape::tag_info &tinfo, uint32_t variant_id,
215
209
const std::pair<const uint8_t *,const uint8_t *>
216
210
variant_ptr_and_end) {
217
- irc sub (*this , variant_ptr_and_end.first , tinfo. params );
211
+ irc sub (*this , variant_ptr_and_end.first );
218
212
219
213
assert (variant_id < 256 ); // FIXME: Temporary sanity check.
220
214
@@ -240,10 +234,8 @@ irc::compute_ircs(rust_task *task, irc_map &ircs) {
240
234
box, tydesc, body);
241
235
242
236
shape::arena arena;
243
- shape::type_param *params =
244
- shape::type_param::from_tydesc_and_data (tydesc, body, arena);
245
237
246
- irc irc (task, true , tydesc->shape , params, tydesc->shape_tables ,
238
+ irc irc (task, true , tydesc->shape , tydesc->shape_tables ,
247
239
body, ircs);
248
240
irc.walk ();
249
241
}
@@ -292,43 +284,38 @@ class mark : public shape::data<mark,shape::ptr> {
292
284
293
285
mark (const mark &other, const shape::ptr &in_dp)
294
286
: shape::data<mark,shape::ptr>(other.task, other.align, other.sp,
295
- other.params, other.tables, in_dp),
287
+ other.tables, in_dp),
296
288
marked (other.marked) {}
297
289
298
290
mark (const mark &other,
299
291
const uint8_t *in_sp,
300
- const shape::type_param *in_params,
301
292
const rust_shape_tables *in_tables = NULL )
302
293
: shape::data<mark,shape::ptr>(other.task,
303
294
other.align,
304
295
in_sp,
305
- in_params,
306
296
in_tables ? in_tables : other.tables,
307
297
other.dp),
308
298
marked (other.marked) {}
309
299
310
300
mark (const mark &other,
311
301
const uint8_t *in_sp,
312
- const shape::type_param *in_params,
313
302
const rust_shape_tables *in_tables,
314
303
shape::ptr in_dp)
315
304
: shape::data<mark,shape::ptr>(other.task,
316
305
other.align,
317
306
in_sp,
318
- in_params,
319
307
in_tables,
320
308
in_dp),
321
309
marked (other.marked) {}
322
310
323
311
mark (rust_task *in_task,
324
312
bool in_align,
325
313
const uint8_t *in_sp,
326
- const shape::type_param *in_params,
327
314
const rust_shape_tables *in_tables,
328
315
uint8_t *in_data,
329
316
std::set<rust_opaque_box*> &in_marked)
330
- : shape::data<mark,shape::ptr>(in_task, in_align, in_sp, in_params ,
331
- in_tables, in_data),
317
+ : shape::data<mark,shape::ptr>(in_task, in_align, in_sp,
318
+ in_tables, shape::ptr( in_data) ),
332
319
marked (in_marked) {}
333
320
334
321
void walk_vec2 (bool is_pod, std::pair<uint8_t *,uint8_t *> data_range) {
@@ -340,8 +327,8 @@ class mark : public shape::data<mark,shape::ptr> {
340
327
if (data_range.second - data_range.first > 100000 )
341
328
abort (); // FIXME: Temporary sanity check.
342
329
343
- mark sub (*this , data_range.first );
344
- shape::ptr data_end = sub.end_dp = data_range.second ;
330
+ mark sub (*this , shape::ptr ( data_range.first ) );
331
+ shape::ptr data_end = sub.end_dp = shape::ptr ( data_range.second ) ;
345
332
while (sub.dp < data_end) {
346
333
sub.walk_reset ();
347
334
align = true ;
@@ -399,9 +386,8 @@ class mark : public shape::data<mark,shape::ptr> {
399
386
}
400
387
}
401
388
402
- void walk_res2 (const shape::rust_fn *dtor, unsigned n_params,
403
- const shape::type_param *params, const uint8_t *end_sp,
404
- bool live) {
389
+ void walk_res2 (const shape::rust_fn *dtor, const uint8_t *end_sp,
390
+ bool live) {
405
391
while (this ->sp != end_sp) {
406
392
this ->walk ();
407
393
align = true ;
458
444
mark::walk_variant2 (shape::tag_info &tinfo, uint32_t variant_id,
459
445
const std::pair<const uint8_t *,const uint8_t *>
460
446
variant_ptr_and_end) {
461
- mark sub (*this , variant_ptr_and_end.first , tinfo. params );
447
+ mark sub (*this , variant_ptr_and_end.first );
462
448
463
449
assert (variant_id < 256 ); // FIXME: Temporary sanity check.
464
450
@@ -487,10 +473,8 @@ mark::do_mark(rust_task *task,
487
473
488
474
uint8_t *p = (uint8_t *) box_body (box);
489
475
shape::arena arena;
490
- shape::type_param *params =
491
- shape::type_param::from_tydesc_and_data (tydesc, p, arena);
492
476
493
- mark mark (task, true , tydesc->shape , params, tydesc->shape_tables ,
477
+ mark mark (task, true , tydesc->shape , tydesc->shape_tables ,
494
478
p, marked);
495
479
mark.walk ();
496
480
}
@@ -543,8 +527,7 @@ do_final_cc(rust_task *task) {
543
527
cerr << " Unreclaimed object found at " << (void *) box << " : " ;
544
528
const type_desc *td = box->td ;
545
529
shape::arena arena;
546
- shape::type_param *params = shape::type_param::from_tydesc (td, arena);
547
- shape::log log (task, true , td->shape , params, td->shape_tables ,
530
+ shape::log log (task, true , td->shape , td->shape_tables ,
548
531
(uint8_t *)box_body (box), cerr);
549
532
log.walk ();
550
533
cerr << " \n " ;
0 commit comments