Age | Commit message (Collapse) | Author |
|
This fixes a few sizing issues too. The page size is now correct in most
cases! \o/
We get to remove some of the `to_type<>()` shenanigans, though it
reappears in some other places.
|
|
|
|
This does not touch the actual font selection, so the text itself is
still small for now.
|
|
|
|
|
|
Co-authored-by: MacDue <macdue@dueutil.tech>
|
|
|
|
|
|
|
|
For now, everyone uses `device_viewport_rect()`, until I convert them.
|
|
Store the ratio between device and CSS pixels on the PaintContext, so
that it can convert between the two.
Co-authored-by: MacDue <macdue@dueutil.tech>
|
|
Allowing floats here was causing accidental truncations.
Co-authored-by: MacDue <macdue@dueutil.tech>
|
|
|
|
Previously we were just printing error and then doing release_value(),
causing crash when opening links that cannot be read (e.g in /proc).
|
|
The only cases where the name should be set is if the function comes
from a direct anonymous function expression.
|
|
We return early from the DateTimeFormat constructor to avoid crashing on
assertions when the CLDR is disabled. However, after commit 019211b, the
spec now mandates we assert the time zone identifier is valid. The early
return resulted in this identifier being an empty string.
|
|
|
|
This now allows you to select a background color for your new image,
and optionally allows saving that default. You can pick between
Transparent, White, Black, or a custom color (similar to other
editors).
|
|
|
|
|
|
|
|
Previously it was reference-captured, causing crash because of stack
use after return.
|
|
This fixes a pleasant 8 FIXMEs. :^)
|
|
This fixes an astonishing 22 FIXMEs. :^)
|
|
This fixes a whopping 29 FIXMEs. :^)
|
|
This currently uses strtod, which is locale-dependent. Use the locale-
independent method added in 65ee9b4134225398f0a5109eb79b0baba98c9cd6.
|
|
|
|
These nodes don't really do anything interesting yet, but let's allow
creating them. :^)
|
|
|
|
|
|
|
|
Now that LibSQL can store 64-bit integers, let's use them.
|
|
Currently, integers are stored in LibSQL as 32-bit signed integers, even
if the provided type is unsigned. This resulted in a series of unchecked
unsigned-to-signed conversions, and prevented storing 64-bit values.
Further, mathematical operations were performed without similar checks,
and without checking for overflow.
This changes SQL::Value to behave like SQLite for INTEGER types. In
SQLite, the INTEGER type does not imply a size or signedness of the
underlying type. Instead, SQLite determines on-the-fly what type is
needed as values are created and updated.
To do so, the SQL::Value variant can now hold an i64 or u64 integer. If
a specific type is requested, invalid conversions are now explictly an
error (e.g. converting a stored -1 to a u64 will fail). When binary
mathematical operations are performed, we now try to coerce the RHS
value to a type that works with the LHS value, failing the operation if
that isn't possible. Any overflow or invalid operation (e.g. bitshifting
a 64-bit value by more than 64 bytes) is an error.
|
|
|
|
Removing the bitmask-esque values from the enumeration necessitates a
Heap version bump.
|
|
In the long run, this is obviously a bad way to handle version changes
to the SQL database files. We will want to migrate old databases to new
formats. Until we figure out a good way to do that, wipe old databases
so that we don't crash trying to read incompatible data.
|
|
GCPtr can be null so it's not safe to assign it to a NonnullGCPtr unless
you know it to be non-null.
This exposed a number of wrong uses in LibWeb which had to be fixed as
part of this change.
|
|
This constructor was easily confused with a copy constructor, and it was
possible to accidentally copy-construct Objects in at least one way that
we dicovered (via generic ThrowCompletionOr construction).
This patch adds a mandatory ConstructWithPrototypeTag parameter to the
constructor to disambiguate it.
|
|
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.
|
|
Having an uninitialized text alignment value caused a crash in
Gfx::Painter::draw_text.
|
|
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 :^)
|
|
Serenity's implementation does not set this pointer to anything, so we
should not assume it was set.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|