Commit graph

44973 commits

Author SHA1 Message Date
Andreas Kling
42b5c896e8 LibJS: Don't "copy construct" temporary value in ThrowCompletionOr ctor
It was possible for the generic ThrowCompletionOr constructor to
"copy-construct" a JS Object when instantiating a ThrowCompletionOr
via e.g `return *object;`.

This happened because it chose the Object(Object& prototype) constructor
which will be removed in a subsequent commit. It was not easy to debug.

As a first step towards avoiding this in the future, the generic
ThrowCompletionOr constructor now takes the value as a const reference.
2022-12-14 15:11:57 +01:00
Arda Cinar
3ea1584f2e Presenter: Provide default text styles to text objects
Having an uninitialized text alignment value caused a crash in
Gfx::Painter::draw_text.
2022-12-14 07:45:06 -05:00
Arda Cinar
9d9a6b6b64 Presenter: Fix a crash in loading untitled presentations
The Presentation::title() and Presentation::author() functions return a
StringView to the title/author defined in the json file or a default
value. Previously, this would return a StringView to already-freed
memory and crash the application when setting the window title. This
commit fixes that issue :^)
2022-12-14 07:45:06 -05:00
Timothy Flynn
e305b32d9a LibCore: Protect Core::Group against null group::gr_mem members
Serenity's implementation does not set this pointer to anything, so we
should not assume it was set.
2022-12-14 07:25:36 -05:00
Timothy Flynn
d09266237d LibCore: Define and use a fallible, OS-independent getgrent(_r) wrapper
Rather than maintaining a list of #ifdef guards to check systems that do
not provide the reentrant version of getgrent, we can use C++ concepts
to let the compiler perform this check for us.

While we're at it, we can also provide this wrapper as fallible to let
the caller TRY calling it.
2022-12-14 07:25:36 -05:00
Timothy Flynn
1ee808fae6 LibCore: Define and use a fallible, OS-independent getpwent(_r) wrapper
Rather than maintaining a list of #ifdef guards to check systems that do
not provide the reentrant version of getpwent, we can use C++ concepts
to let the compiler perform this check for us.

While we're at it, we can also provide this wrapper as fallible to let
the caller TRY calling it.
2022-12-14 07:25:36 -05:00
Ali Mohammad Pur
b367da592c AK: Bring back the AK_DONT_REPLACE_STD #define
This was removed in a910961f37d1da9dafb6385e348266746354cf98 in favour
of the more general USING_AK_GLOBALLY #define, but Ladybird (and
probably other projects) depend on the smaller hammer to include STL
headers and keep the USING_AK_GLOBALLY behaviour, so put it back and
preserve its behaviour.
2022-12-14 12:56:01 +01:00
Andrew Kaster
16d4791212 CMake: Pass NO_POLICY_SCOPE to options cmake helpers
Tell CMake to not create a new policy scope for the
(lagom|serenity|common)_options.cmake helpers, and lets us set common
policies for both projects in common_options.cmake that actually apply
to the rest of the project, instead of just common_options.cmake itself.
2022-12-14 12:43:12 +01:00
Ali Mohammad Pur
f96a3c002a Everywhere: Stop shoving things into ::std and mentioning them as such
Note that this still keeps the old behaviour of putting things in std by
default on serenity so the tools can be happy, but if USING_AK_GLOBALLY
is unset, AK behaves like a good citizen and doesn't try to put things
in the ::std namespace.

std::nothrow_t and its friends get to stay because I'm being told that
compilers assume things about them and I can't yeet them into a
different namespace...for now.
2022-12-14 11:44:32 +01:00
Ali Mohammad Pur
72514d6915 AK: Make Types.h not export its functions if !USING_AK_GLOBALLY 2022-12-14 11:44:32 +01:00
Linus Groh
b90f505409 LibJS: Convert WrappedFunction::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
54ebf71da2 LibJS: Convert WeakSet::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
cac71a6847 LibJS: Convert WeakRef::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
3358ddfd0e LibJS: Convert WeakMap::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
37c85fa07e LibJS: Convert TypedArray::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
dd3d133968 LibJS: Convert SymbolObject::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
049e99b5f0 LibJS: Convert StringObject::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
337c55a893 LibJS: Convert StringIterator::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
c200c247e4 LibJS: Convert SetIterator::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
1c8b700248 LibJS: Convert Set::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
9946e9e874 LibJS: Convert RegExpStringIterator::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
cad40ec953 LibJS: Convert RegExpObject::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
bfb8d83535 LibJS: Convert Realm::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
e0818bf21e LibJS: Convert ProxyObject::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
6e386acb11 LibJS: Convert PromiseResolvingFunction::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
d3cb7cd584 LibJS: Convert PromiseFooElementFunction::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
716c8bdc9d LibJS: Convert PromiseReaction::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
a4d85cd522 LibJS: Convert Promise::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
ddc6e139a6 LibJS: Convert Object::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
f990095728 LibJS: Convert NumberObject::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
b42e293ddd LibJS: Convert NativeFunction::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
9846d23c79 LibJS: Convert MapIterator::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
d48cdc7fa6 LibJS: Convert Map::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
45f903da00 LibJS: Convert Intrinsics::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
237402aea9 LibJS: Convert Intl::Segments::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
df589bb05b LibJS: Convert Intl::SegmentIterator::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
658bd2f342 LibJS: Convert Intl::NumberFormatFunction::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
b2034c59dc LibJS: Convert Intl::Locale::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
81d5bbcb04 LibJS: Convert Intl::DateTimeFormatFunction::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
46acce5142 LibJS: Convert Intl::CollatorCompareFunction::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
83de01043f LibJS: Convert GeneratorObject::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
d21ac9d820 LibJS: Convert Error::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
73efdb1cc4 LibJS: Convert ECMAScriptFunctionObject::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
790b21c8b5 LibJS: Convert Date::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
0eeb3164fa LibJS: Convert DataView::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
efbd8ee072 LibJS: Convert BoundFunction::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
b48fa8756f LibJS: Convert BooleanObject::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
cf0a24ff0c LibJS: Convert BigIntObject::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
6528cbf51b LibJS: Convert AsyncFromSyncIterator::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
4763cab323 LibJS: Convert ArrayIterator::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00