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:
parent
df2a080bd0
commit
7e9b940890
@ -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
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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 ],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user