add init_message to space

so kernel::__init can use that and the first next_message does not need
to be reused
This commit is contained in:
Torsten Ruger 2015-06-30 09:52:17 +03:00
parent df2a080bd0
commit 7e9b940890
3 changed files with 3 additions and 2 deletions

View File

@ -39,6 +39,7 @@ module Parfait
@next_message = Message.new @next_message @next_message = Message.new @next_message
@next_frame = Frame.new @next_frame @next_frame = Frame.new @next_frame
end end
@init_message = Message.new @next_message
init_layout init_layout
end end

View File

@ -14,7 +14,7 @@ module Register
#Set up the Space as self upon init #Set up the Space as self upon init
space = Parfait::Space.object_space space = Parfait::Space.object_space
function.info.add_code LoadConstant.new( space , Register.self_reg) function.info.add_code LoadConstant.new( space , Register.self_reg)
message_ind = space.get_layout().index_of( :next_message ) message_ind = space.get_layout().index_of( :init_message )
# Load the message to new message register (r3) # Load the message to new message register (r3)
function.info.add_code Register.get_slot( :self , message_ind , :new_message) function.info.add_code Register.get_slot( :self , message_ind , :new_message)
# And store the space as the new self (so the call can move it back as self) # And store the space as the new self (so the call can move it back as self)

View File

@ -29,7 +29,7 @@ module Virtual
:Message => [:next_message , :receiver , :frame , :return_address , :caller , :name ], :Message => [:next_message , :receiver , :frame , :return_address , :caller , :name ],
:MetaClass => [], :MetaClass => [],
:BinaryCode => [], :BinaryCode => [],
:Space => [:classes ,:next_message ,:next_frame, :syscall_message], :Space => [:classes ,:init_message , :next_message ,:next_frame, :syscall_message],
:Frame => [:next_frame ], :Frame => [:next_frame ],
:Layout => [:object_class] , :Layout => [:object_class] ,
:Class => [:object_layout ], :Class => [:object_layout ],