aboutsummaryrefslogtreecommitdiff
path: root/src/boot/me/layout.ml
diff options
context:
space:
mode:
authorRoy Frostig <[email protected]>2010-08-09 15:45:08 -0700
committerRoy Frostig <[email protected]>2010-08-09 15:45:08 -0700
commit982dcc29bf6cd41e967a0befe0c6195811cd6a55 (patch)
tree5973524a65f4a2095b75b63c8d72b2b3804ddd6a /src/boot/me/layout.ml
parentXFailed some tests. (diff)
downloadrust-982dcc29bf6cd41e967a0befe0c6195811cd6a55.tar.xz
rust-982dcc29bf6cd41e967a0befe0c6195811cd6a55.zip
Get object's captured typarams when calculating sizes in the backend's fn-prologue-generation for object methods.
Diffstat (limited to 'src/boot/me/layout.ml')
-rw-r--r--src/boot/me/layout.ml8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/boot/me/layout.ml b/src/boot/me/layout.ml
index a9358795..6464a8f7 100644
--- a/src/boot/me/layout.ml
+++ b/src/boot/me/layout.ml
@@ -113,7 +113,7 @@ let layout_visitor
| Il.CodeTy -> true
| Il.NilTy -> false
in
- rt_in_mem (slot_referent_type cx.ctxt_abi slot)
+ rt_in_mem (slot_referent_type cx.ctxt_abi.Abi.abi_word_bits slot)
in
let rty_sz rty = Il.referent_ty_size cx.ctxt_abi.Abi.abi_word_bits rty in
@@ -142,7 +142,7 @@ let layout_visitor
: unit =
let accum (off,align) id : (size * size) =
let slot = get_slot cx id in
- let rt = slot_referent_type cx.ctxt_abi slot in
+ let rt = slot_referent_type cx.ctxt_abi.Abi.abi_word_bits slot in
let (elt_size, elt_align) = rty_layout rt in
if vregs_ok
&& (is_subword_size elt_size)
@@ -170,7 +170,9 @@ let layout_visitor
then elt_off
else neg_sz (add_sz elt_off elt_size)
in
- Stack.push (slot_referent_type cx.ctxt_abi slot) slot_accum;
+ Stack.push
+ (slot_referent_type cx.ctxt_abi.Abi.abi_word_bits slot)
+ slot_accum;
iflog
begin
fun _ ->