diff --git a/lib/virtual.rb b/lib/virtual.rb index 9f186c13..9ec57813 100644 --- a/lib/virtual.rb +++ b/lib/virtual.rb @@ -18,6 +18,13 @@ require "virtual/passes/get_implementation" require "virtual/passes/enter_implementation" require "virtual/passes/frame_implementation" +Sof::Volotile.add(Parfait::Object , [:memory]) +Sof::Volotile.add(Parfait::Method , [:memory]) +Sof::Volotile.add(Parfait::Class , [:memory]) +Sof::Volotile.add(Parfait::Layout , [:memory]) +Sof::Volotile.add(Parfait::Space , [:memory]) +Sof::Volotile.add(Parfait::Frame , [:memory]) +Sof::Volotile.add(Parfait::Message , [:memory]) Sof::Volotile.add(Parfait::BinaryCode , [:memory]) Sof::Volotile.add(Virtual::Block , [:method]) Sof::Volotile.add(Virtual::CompiledMethodInfo , [:current]) diff --git a/lib/virtual/parfait_adapter.rb b/lib/virtual/parfait_adapter.rb index 24e87091..99a19535 100644 --- a/lib/virtual/parfait_adapter.rb +++ b/lib/virtual/parfait_adapter.rb @@ -38,7 +38,7 @@ end class Symbol include Positioned include Padding - + def init_layout; end def has_layout? true @@ -109,6 +109,10 @@ module Parfait def internal_object_set(index , value) raise "failed init for #{self.class}" unless @memory @memory[index] = value + #shaddowing layout so we can ignore memory in Sof + if(index == LAYOUT_INDEX) + @layout = value + end end def internal_object_grow(length) old_length = internal_object_length()