mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 08:48:11 +00:00
LibJS: Handle both const and non-const Ts in Handle<T>::create()
Again, the const-ness only really involves Heap-internal metadata, so the callers shouldn't care about mutations here.
This commit is contained in:
parent
74e93a46ea
commit
70a2ca7fc0
6 changed files with 10 additions and 10 deletions
|
@ -46,7 +46,7 @@ public:
|
||||||
|
|
||||||
static Handle create(T* cell)
|
static Handle create(T* cell)
|
||||||
{
|
{
|
||||||
return Handle(adopt_ref(*new HandleImpl(cell)));
|
return Handle(adopt_ref(*new HandleImpl(const_cast<RemoveConst<T>*>(cell))));
|
||||||
}
|
}
|
||||||
|
|
||||||
Handle(T* cell)
|
Handle(T* cell)
|
||||||
|
|
|
@ -2121,7 +2121,7 @@ Vector<JS::Handle<HTML::BrowsingContext>> Document::list_of_descendant_browsing_
|
||||||
// of this document's browsing context.
|
// of this document's browsing context.
|
||||||
if (browsing_context()) {
|
if (browsing_context()) {
|
||||||
browsing_context()->for_each_in_subtree([&](auto& context) {
|
browsing_context()->for_each_in_subtree([&](auto& context) {
|
||||||
list.append(JS::make_handle(const_cast<HTML::BrowsingContext&>(context)));
|
list.append(JS::make_handle(context));
|
||||||
return IterationDecision::Continue;
|
return IterationDecision::Continue;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -838,7 +838,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> http_fetch(JS::Realm& rea
|
||||||
// NOTE: Step 2 is performed in pending_preflight_response's load callback below.
|
// NOTE: Step 2 is performed in pending_preflight_response's load callback below.
|
||||||
}
|
}
|
||||||
|
|
||||||
auto fetch_main_content = [request = JS::make_handle(request), realm = JS::make_handle(realm), fetch_params = JS::make_handle(const_cast<Infrastructure::FetchParams&>(fetch_params))]() -> WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> {
|
auto fetch_main_content = [request = JS::make_handle(request), realm = JS::make_handle(realm), fetch_params = JS::make_handle(fetch_params)]() -> WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> {
|
||||||
// 2. If request’s redirect mode is "follow", then set request’s service-workers mode to "none".
|
// 2. If request’s redirect mode is "follow", then set request’s service-workers mode to "none".
|
||||||
// NOTE: Redirects coming from the network (as opposed to from a service worker) are not to be exposed to a
|
// NOTE: Redirects coming from the network (as opposed to from a service worker) are not to be exposed to a
|
||||||
// service worker.
|
// service worker.
|
||||||
|
|
|
@ -52,11 +52,11 @@ void PendingResponse::resolve(JS::NonnullGCPtr<Infrastructure::Response> respons
|
||||||
run_callback();
|
run_callback();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PendingResponse::run_callback() const
|
void PendingResponse::run_callback()
|
||||||
{
|
{
|
||||||
VERIFY(m_callback);
|
VERIFY(m_callback);
|
||||||
VERIFY(m_response);
|
VERIFY(m_response);
|
||||||
Platform::EventLoopPlugin::the().deferred_invoke([strong_this = JS::make_handle(const_cast<PendingResponse&>(*this))] {
|
Platform::EventLoopPlugin::the().deferred_invoke([strong_this = JS::make_handle(*this)] {
|
||||||
strong_this->m_callback(*strong_this->m_response);
|
strong_this->m_callback(*strong_this->m_response);
|
||||||
strong_this->m_request->remove_pending_response({}, *strong_this.ptr());
|
strong_this->m_request->remove_pending_response({}, *strong_this.ptr());
|
||||||
});
|
});
|
||||||
|
|
|
@ -35,7 +35,7 @@ private:
|
||||||
|
|
||||||
virtual void visit_edges(JS::Cell::Visitor&) override;
|
virtual void visit_edges(JS::Cell::Visitor&) override;
|
||||||
|
|
||||||
void run_callback() const;
|
void run_callback();
|
||||||
|
|
||||||
Callback m_callback;
|
Callback m_callback;
|
||||||
JS::NonnullGCPtr<Infrastructure::Request> m_request;
|
JS::NonnullGCPtr<Infrastructure::Request> m_request;
|
||||||
|
|
|
@ -84,13 +84,13 @@ Vector<JS::Handle<HTMLOptionElement>> HTMLSelectElement::list_of_options() const
|
||||||
// and all the option element children of all the optgroup element children of the select element, in tree order.
|
// and all the option element children of all the optgroup element children of the select element, in tree order.
|
||||||
Vector<JS::Handle<HTMLOptionElement>> list;
|
Vector<JS::Handle<HTMLOptionElement>> list;
|
||||||
|
|
||||||
for_each_child_of_type<HTMLOptionElement>([&](HTMLOptionElement const& option_element) {
|
for_each_child_of_type<HTMLOptionElement>([&](HTMLOptionElement& option_element) {
|
||||||
list.append(JS::make_handle(const_cast<HTMLOptionElement&>(option_element)));
|
list.append(JS::make_handle(option_element));
|
||||||
});
|
});
|
||||||
|
|
||||||
for_each_child_of_type<HTMLOptGroupElement>([&](HTMLOptGroupElement const& optgroup_element) {
|
for_each_child_of_type<HTMLOptGroupElement>([&](HTMLOptGroupElement const& optgroup_element) {
|
||||||
optgroup_element.for_each_child_of_type<HTMLOptionElement>([&](HTMLOptionElement const& option_element) {
|
optgroup_element.for_each_child_of_type<HTMLOptionElement>([&](HTMLOptionElement& option_element) {
|
||||||
list.append(JS::make_handle(const_cast<HTMLOptionElement&>(option_element)));
|
list.append(JS::make_handle(option_element));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue