1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:47:45 +00:00

LibWeb: Remove unecessary dependence on Window from SVG classes

These classes only needed Window to get at its realm. Pass a realm
directly to construct SCG classes.
This commit is contained in:
Andrew Kaster 2022-09-25 18:04:39 -06:00 committed by Linus Groh
parent 62a8c26b73
commit 320dddde6a
20 changed files with 87 additions and 93 deletions

View file

@ -4,22 +4,22 @@
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibWeb/HTML/Window.h>
#include <LibWeb/Bindings/Intrinsics.h>
#include <LibWeb/SVG/SVGAnimatedLength.h>
namespace Web::SVG {
JS::NonnullGCPtr<SVGAnimatedLength> SVGAnimatedLength::create(HTML::Window& window, JS::NonnullGCPtr<SVGLength> base_val, JS::NonnullGCPtr<SVGLength> anim_val)
JS::NonnullGCPtr<SVGAnimatedLength> SVGAnimatedLength::create(JS::Realm& realm, JS::NonnullGCPtr<SVGLength> base_val, JS::NonnullGCPtr<SVGLength> anim_val)
{
return *window.heap().allocate<SVGAnimatedLength>(window.realm(), window, move(base_val), move(anim_val));
return *realm.heap().allocate<SVGAnimatedLength>(realm, realm, move(base_val), move(anim_val));
}
SVGAnimatedLength::SVGAnimatedLength(HTML::Window& window, JS::NonnullGCPtr<SVGLength> base_val, JS::NonnullGCPtr<SVGLength> anim_val)
: PlatformObject(window.realm())
SVGAnimatedLength::SVGAnimatedLength(JS::Realm& realm, JS::NonnullGCPtr<SVGLength> base_val, JS::NonnullGCPtr<SVGLength> anim_val)
: PlatformObject(realm)
, m_base_val(move(base_val))
, m_anim_val(move(anim_val))
{
set_prototype(&window.cached_web_prototype("SVGAnimatedLength"));
set_prototype(&Bindings::cached_web_prototype(realm, "SVGAnimatedLength"));
// The object referenced by animVal will always be distinct from the one referenced by baseVal, even when the attribute is not animated.
VERIFY(m_base_val.ptr() != m_anim_val.ptr());