diff --git a/lib/register/padding.rb b/lib/register/padding.rb index 4fb62776..ff8275df 100644 --- a/lib/register/padding.rb +++ b/lib/register/padding.rb @@ -2,10 +2,10 @@ module Padding # objects only come in lengths of multiple of 8 words - # but there is a constant overhead of 2 words, one for type, one for layout + # but there is a constant overhead of 1 words for layout # and as we would have to subtract 1 to make it work without overhead, we now have to add 7 def padded len - a = 32 * (1 + (len + 7)/32 ) + a = 32 * (1 + (len + 3)/32 ) #puts "#{a} for #{len}" a end @@ -15,7 +15,7 @@ module Padding end def padding_for length - pad = padded(length) - length - 8 # for header, type and layout + pad = padded(length) - length - 4 # for header, layout pad end end diff --git a/test/register/test_padding.rb b/test/register/test_padding.rb index 8caf0590..4f300af1 100644 --- a/test/register/test_padding.rb +++ b/test/register/test_padding.rb @@ -10,17 +10,17 @@ class TestPadding < MiniTest::Test @pad = Padded.new end def test_small - [6,20,23,24].each do |p| + [6,20,27,28].each do |p| assert_equal 32 , @pad.padded(p) , "Expecting 32 for #{p}" end end def test_medium - [26,40,53,56].each do |p| + [29,40,57,60].each do |p| assert_equal 64 , @pad.padded(p) , "Expecting 64 for #{p}" end end def test_large - [58,88].each do |p| + [61,88].each do |p| assert_equal 96 , @pad.padded(p) , "Expecting 96 for #{p}" end end