From 0f8f0a681cd443d9bf6b9ae6849b472e47341b44 Mon Sep 17 00:00:00 2001 From: Torsten Ruger Date: Tue, 3 Nov 2015 16:22:50 +0200 Subject: [PATCH] fix padding to only consider layout (1 word) --- lib/register/padding.rb | 6 +++--- test/register/test_padding.rb | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) 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