core: Allow NetStream script data to call any functions

This commit is contained in:
Lord-McSweeney 2023-07-19 00:26:06 -07:00 committed by kmeisthax
parent dd0d4f7eea
commit 7c33932f53
1 changed files with 30 additions and 54 deletions

View File

@ -24,7 +24,6 @@ use gc_arena::{Collect, GcCell, MutationContext};
use ruffle_render::bitmap::BitmapInfo; use ruffle_render::bitmap::BitmapInfo;
use ruffle_video::frame::EncodedFrame; use ruffle_video::frame::EncodedFrame;
use ruffle_video::VideoStreamHandle; use ruffle_video::VideoStreamHandle;
use ruffle_wstr::WStr;
use std::cmp::max; use std::cmp::max;
use std::io::Seek; use std::io::Seek;
use std::sync::{Arc, Mutex}; use std::sync::{Arc, Mutex};
@ -713,10 +712,7 @@ impl<'gc> NetStream<'gc> {
) -> Result<(), Avm2Error<'gc>> { ) -> Result<(), Avm2Error<'gc>> {
match avm_object { match avm_object {
Some(AvmObject::Avm1(object)) => { Some(AvmObject::Avm1(object)) => {
match variable_name { let avm_string_name = AvmString::new_utf8_bytes(context.gc_context, variable_name);
b"onCuePoint" | b"onMetaData" => {
let avm_string_name =
AvmString::new_utf8_bytes(context.gc_context, variable_name);
let root = context.stage.root_clip().expect("root"); let root = context.stage.root_clip().expect("root");
let mut activation = Avm1Activation::from_nothing( let mut activation = Avm1Activation::from_nothing(
@ -734,29 +730,17 @@ impl<'gc> NetStream<'gc> {
Avm1ExecutionReason::Special, Avm1ExecutionReason::Special,
) { ) {
tracing::error!( tracing::error!(
"Got error when dispatching AVM1 onCuePoint event from NetStream: {}", "Got error when dispatching AVM1 {} script data handler from NetStream: {}",
e avm_string_name,
e,
); );
} }
} }
b"onXMPData" => {
tracing::warn!("Stub: FLV stream data onXMPData for AVM1");
}
_ => {
tracing::warn!(
"Stub: FLV stream data {} for AVM1",
WStr::from_units(variable_name)
);
}
};
}
Some(AvmObject::Avm2(_object)) => { Some(AvmObject::Avm2(_object)) => {
match variable_name {
b"onCuePoint" | b"onMetaData" => {
let mut activation = Avm2Activation::from_nothing(context.reborrow()); let mut activation = Avm2Activation::from_nothing(context.reborrow());
let client_object = self.client().expect( let client_object = self
"Client should be initialized if script data is being accessed", .client()
); .expect("Client should be initialized if script data is being accessed");
let data_object = variable_data.to_avm2_value(&mut activation); let data_object = variable_data.to_avm2_value(&mut activation);
@ -766,14 +750,6 @@ impl<'gc> NetStream<'gc> {
&mut activation, &mut activation,
)?; )?;
} }
_ => {
tracing::warn!(
"Stub: FLV stream data {} for AVM2",
WStr::from_units(variable_name)
);
}
};
}
None => {} None => {}
}; };