move apply_defs to just before the VM evaluates code
This commit is contained in:
parent
4761fd40ba
commit
2d1f49f78d
|
@ -174,6 +174,7 @@ unsafe extern "C" fn haku_instance_destroy(instance: *mut Instance) {
|
|||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn haku_reset(instance: *mut Instance) {
|
||||
debug!("resetting instance: {instance:?}");
|
||||
let instance = &mut *instance;
|
||||
instance.system.restore_image(&instance.system_image);
|
||||
instance.defs.restore_image(&instance.defs_image);
|
||||
|
@ -181,6 +182,7 @@ unsafe extern "C" fn haku_reset(instance: *mut Instance) {
|
|||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn haku_reset_vm(instance: *mut Instance) {
|
||||
debug!("resetting instance VM: {instance:?}");
|
||||
let instance = &mut *instance;
|
||||
instance.vm.restore_image(&instance.vm_image);
|
||||
}
|
||||
|
@ -348,8 +350,6 @@ unsafe extern "C" fn haku_compile_brush(
|
|||
};
|
||||
brush.state = BrushState::Ready(chunk_id);
|
||||
|
||||
instance.vm.apply_defs(&instance.defs);
|
||||
|
||||
info!("brush compiled into {chunk_id:?}");
|
||||
|
||||
StatusCode::Ok
|
||||
|
@ -395,6 +395,9 @@ unsafe extern "C" fn haku_eval_brush(instance: *mut Instance, brush: *const Brus
|
|||
panic!("brush is not compiled and ready to be used");
|
||||
};
|
||||
|
||||
debug!("applying defs");
|
||||
instance.vm.apply_defs(&instance.defs);
|
||||
|
||||
let Ok(closure_id) = instance.vm.create_ref(Ref::Closure(Closure {
|
||||
start: BytecodeLoc {
|
||||
chunk_id,
|
||||
|
|
|
@ -114,8 +114,6 @@ impl Haku {
|
|||
let chunk_id = self.system.add_chunk(chunk).context("too many chunks")?;
|
||||
self.brush = Some(chunk_id);
|
||||
|
||||
self.vm.apply_defs(&self.defs);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -124,6 +122,8 @@ impl Haku {
|
|||
.brush
|
||||
.ok_or_eyre("brush is not compiled and ready to be used")?;
|
||||
|
||||
self.vm.apply_defs(&self.defs);
|
||||
|
||||
let closure_id = self
|
||||
.vm
|
||||
.create_ref(Ref::Closure(Closure {
|
||||
|
|
Loading…
Reference in a new issue