avm1: Remove `set` specialization from `impl_custom_object!`
`base_proto` is going to be eliminated in a following commit, so there will no longer be a difference between the two `set_local` variants.
This commit is contained in:
parent
3fc0209e03
commit
0a66dac280
|
@ -118,7 +118,6 @@ impl<'gc> BevelFilterObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for BevelFilterObject<'gc> {
|
impl<'gc> TObject<'gc> for BevelFilterObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: bevel_filter);
|
|
||||||
bare_object(as_bevel_filter_object -> BevelFilterObject::empty_object);
|
bare_object(as_bevel_filter_object -> BevelFilterObject::empty_object);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,6 @@ impl<'gc> BitmapDataObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for BitmapDataObject<'gc> {
|
impl<'gc> TObject<'gc> for BitmapDataObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: bitmap_data);
|
|
||||||
bare_object(as_bitmap_data_object -> BitmapDataObject::empty_object);
|
bare_object(as_bitmap_data_object -> BitmapDataObject::empty_object);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,6 @@ impl<'gc> BlurFilterObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for BlurFilterObject<'gc> {
|
impl<'gc> TObject<'gc> for BlurFilterObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: blur_filter);
|
|
||||||
bare_object(as_blur_filter_object -> BlurFilterObject::empty_object);
|
bare_object(as_blur_filter_object -> BlurFilterObject::empty_object);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,6 @@ impl<'gc> ColorMatrixFilterObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for ColorMatrixFilterObject<'gc> {
|
impl<'gc> TObject<'gc> for ColorMatrixFilterObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: color_matrix_filter);
|
|
||||||
bare_object(as_color_matrix_filter_object -> ColorMatrixFilterObject::empty_object);
|
bare_object(as_color_matrix_filter_object -> ColorMatrixFilterObject::empty_object);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,7 +92,6 @@ impl<'gc> ColorTransformObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for ColorTransformObject<'gc> {
|
impl<'gc> TObject<'gc> for ColorTransformObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: color_transform);
|
|
||||||
bare_object(as_color_transform_object -> ColorTransformObject::empty_color_transform_object);
|
bare_object(as_color_transform_object -> ColorTransformObject::empty_color_transform_object);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,7 +100,6 @@ impl<'gc> ConvolutionFilterObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for ConvolutionFilterObject<'gc> {
|
impl<'gc> TObject<'gc> for ConvolutionFilterObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: convolution_filter);
|
|
||||||
bare_object(as_convolution_filter_object -> ConvolutionFilterObject::empty_object);
|
bare_object(as_convolution_filter_object -> ConvolutionFilterObject::empty_object);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,7 @@
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! impl_custom_object {
|
macro_rules! impl_custom_object {
|
||||||
($field:ident) => {
|
($field:ident) => {
|
||||||
crate::impl_custom_object!($field { set(proto: self); });
|
crate::impl_custom_object!($field {});
|
||||||
};
|
|
||||||
|
|
||||||
(@extra $field:ident set(proto: self)) => {
|
|
||||||
fn set_local(
|
|
||||||
&self,
|
|
||||||
name: crate::avm1::AvmString<'gc>,
|
|
||||||
value: crate::avm1::Value<'gc>,
|
|
||||||
activation: &mut crate::avm1::Activation<'_, 'gc, '_>,
|
|
||||||
this: crate::avm1::Object<'gc>,
|
|
||||||
base_proto: Option<crate::avm1::Object<'gc>>,
|
|
||||||
) -> Result<(), crate::avm1::Error<'gc>> {
|
|
||||||
self.0.read().$field.set_local(name, value, activation, this, base_proto)
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
(@extra $field:ident set(proto: $proto:ident)) => {
|
|
||||||
fn set_local(
|
|
||||||
&self,
|
|
||||||
name: crate::avm1::AvmString<'gc>,
|
|
||||||
value: crate::avm1::Value<'gc>,
|
|
||||||
activation: &mut crate::avm1::Activation<'_, 'gc, '_>,
|
|
||||||
this: crate::avm1::Object<'gc>,
|
|
||||||
_base_proto: Option<crate::avm1::Object<'gc>>,
|
|
||||||
) -> Result<(), crate::avm1::Error<'gc>> {
|
|
||||||
self.0.read().$field.set_local(name, value, activation, this, Some(activation.context.avm1.prototypes.$proto))
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
(@extra $field:ident bare_object($as_obj:ident -> $obj_type:ident :: $new:ident)) => {
|
(@extra $field:ident bare_object($as_obj:ident -> $obj_type:ident :: $new:ident)) => {
|
||||||
|
@ -61,6 +35,17 @@ macro_rules! impl_custom_object {
|
||||||
self.0.read().$field.get_local_stored(name, activation)
|
self.0.read().$field.get_local_stored(name, activation)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn set_local(
|
||||||
|
&self,
|
||||||
|
name: crate::avm1::AvmString<'gc>,
|
||||||
|
value: crate::avm1::Value<'gc>,
|
||||||
|
activation: &mut crate::avm1::Activation<'_, 'gc, '_>,
|
||||||
|
this: crate::avm1::Object<'gc>,
|
||||||
|
base_proto: Option<crate::avm1::Object<'gc>>,
|
||||||
|
) -> Result<(), crate::avm1::Error<'gc>> {
|
||||||
|
self.0.read().$field.set_local(name, value, activation, this, base_proto)
|
||||||
|
}
|
||||||
|
|
||||||
fn call(
|
fn call(
|
||||||
&self,
|
&self,
|
||||||
name: crate::avm1::AvmString<'gc>,
|
name: crate::avm1::AvmString<'gc>,
|
||||||
|
|
|
@ -65,7 +65,6 @@ impl<'gc> DateObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for DateObject<'gc> {
|
impl<'gc> TObject<'gc> for DateObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: self);
|
|
||||||
bare_object(as_date_object -> DateObject::empty);
|
bare_object(as_date_object -> DateObject::empty);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,7 +116,6 @@ impl<'gc> DisplacementMapFilterObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for DisplacementMapFilterObject<'gc> {
|
impl<'gc> TObject<'gc> for DisplacementMapFilterObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: displacement_map_filter);
|
|
||||||
bare_object(as_displacement_map_filter_object -> DisplacementMapFilterObject::empty_object);
|
bare_object(as_displacement_map_filter_object -> DisplacementMapFilterObject::empty_object);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,7 +86,6 @@ impl<'gc> DropShadowFilterObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for DropShadowFilterObject<'gc> {
|
impl<'gc> TObject<'gc> for DropShadowFilterObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: drop_shadow_filter);
|
|
||||||
bare_object(as_drop_shadow_filter_object -> DropShadowFilterObject::empty_object);
|
bare_object(as_drop_shadow_filter_object -> DropShadowFilterObject::empty_object);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,7 +74,6 @@ impl<'gc> GlowFilterObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for GlowFilterObject<'gc> {
|
impl<'gc> TObject<'gc> for GlowFilterObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: glow_filter);
|
|
||||||
bare_object(as_glow_filter_object -> GlowFilterObject::empty_object);
|
bare_object(as_glow_filter_object -> GlowFilterObject::empty_object);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,6 @@ impl<'gc> GradientBevelFilterObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for GradientBevelFilterObject<'gc> {
|
impl<'gc> TObject<'gc> for GradientBevelFilterObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: gradient_bevel_filter);
|
|
||||||
bare_object(as_gradient_bevel_filter_object -> GradientBevelFilterObject::empty_object);
|
bare_object(as_gradient_bevel_filter_object -> GradientBevelFilterObject::empty_object);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,6 @@ impl<'gc> GradientGlowFilterObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for GradientGlowFilterObject<'gc> {
|
impl<'gc> TObject<'gc> for GradientGlowFilterObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: gradient_glow_filter);
|
|
||||||
bare_object(as_gradient_glow_filter_object -> GradientGlowFilterObject::empty_object);
|
bare_object(as_gradient_glow_filter_object -> GradientGlowFilterObject::empty_object);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,6 @@ impl<'gc> SharedObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for SharedObject<'gc> {
|
impl<'gc> TObject<'gc> for SharedObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: self);
|
|
||||||
bare_object(as_shared_object -> SharedObject::empty_shared_obj);
|
bare_object(as_shared_object -> SharedObject::empty_shared_obj);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,7 +119,6 @@ impl<'gc> SoundObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for SoundObject<'gc> {
|
impl<'gc> TObject<'gc> for SoundObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: self);
|
|
||||||
bare_object(as_sound_object -> SoundObject::empty_sound);
|
bare_object(as_sound_object -> SoundObject::empty_sound);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,6 @@ impl<'gc> TransformObject<'gc> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for TransformObject<'gc> {
|
impl<'gc> TObject<'gc> for TransformObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: color_transform);
|
|
||||||
bare_object(as_transform_object -> TransformObject::empty);
|
bare_object(as_transform_object -> TransformObject::empty);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,6 @@ impl fmt::Debug for ValueObject<'_> {
|
||||||
|
|
||||||
impl<'gc> TObject<'gc> for ValueObject<'gc> {
|
impl<'gc> TObject<'gc> for ValueObject<'gc> {
|
||||||
impl_custom_object!(base {
|
impl_custom_object!(base {
|
||||||
set(proto: self);
|
|
||||||
bare_object(as_value_object -> ValueObject::empty_box);
|
bare_object(as_value_object -> ValueObject::empty_box);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue