Age | Commit message (Collapse) | Author |
|
|
|
|
|
Make dd truncate the output file as Gnu-dd does by default.
Fixes #7497
|
|
Tracked by #7336
|
|
This results in unaligned reads sometimes, depending on the layout of
the underlying buffer. Caught by UBSAN.
|
|
There's no alignment requirements on a char[4] buffer, so this was
causing unaligned reads that were caught by UBSAN.
|
|
Just casting a void* to a T* and dereferencing it is not particularly
safe. Also UBSAN was complaining. Use memcpy into a default constructed
T instead and require that the T be trivially copyable.
|
|
Take Kernel/UBSanitizer.cpp and make a copy in LibSanitizer.
We can use LibSanitizer to hold other sanitizers as people implement
them :^).
To enable UBSAN for LibC, DynamicLoader, and other low level system
libraries, LibUBSanitizer is built as a serenity_libc, and has a static
version for LibCStatic to use. The approach is the same as that taken in
Note that this means now UBSAN is enabled for code generators, Lagom,
Kernel, and Userspace with -DENABLE_UNDEFINED_SANTIZER=ON. In userspace
however, UBSAN is not deadly (yet).
Co-authored-by: ForLoveOfCats <ForLoveOfCats@vivaldi.net>
|
|
Instead, do the cleanup, remove the signal handler, and abort() again.
|
|
Also make the stack a lot bigger, since we now have only one of these
instead of one per function call.
|
|
|
|
|
|
This allows multiply different kinds of interpreters to be used by the
runtime; currently a BytecodeInterpreter and a
DebuggerBytecodeInterpreter is provided.
|
|
This should make it easier to implement multiple types of interpreters
on top of a configuration, and also give a small speed boost in not
initialising as many Stack objects.
|
|
This means stack operations will no longer do extra allocations.
|
|
Doing that was causing a lot of malloc/free traffic, but since there's
no need to have a stable pointer to them, we can just store them by
value.
This makes execution significantly faster :^)
|
|
Before file would output 'text/html' when the path was a directory.
|
|
Public members shouldn't have an "m_" prefix.
|
|
|
|
Previously we'd only only send one DHCP request for network interfaces
which were up when DHCPClient started. If that packet was lost we'd
never send another request for those interfaces.
Also, if an interface were to appear after DHCPClient started (not
that that is possible at the moment) we wouldn't send requests for
that interface either.
|
|
This fixes a null dereference when toggling the "top functions" mode
while a top-level process node was selected.
|
|
This moves the calculation of selected words that was originally
in the TextEditor application to TextEditor in LibGUI.
This allows all applications with text editors to get
this number without having to calculating it themselves.
|
|
The view menu contains:
1. A fullscreen option (also accessed by pressing F11).
2. Rotation axis controls (x, y, z, or any combination)
3. Rotation speed controls (No rotation, slow, normal, or fast)
|
|
This doesn't look perfect, but it's slightly better than unmodified.
|
|
This makes splitters stand out visually so you can actually spot them.
Before this, you had to guess/know where they were, which was weird.
The look of the knurling is the same as GUI::ResizeCorner, to build on
the established visual language.
|
|
Instead of computing the grabbable areas on the fly in mouse event
handlers, we now figure out which parts of the splitter are grabbable
when something moves around, and then remember it.
This makes the code a lot easier to follow.
|
|
This looks a lot nicer than starting with a plain GUI::Widget.
|
|
This removes `constexpr` from the interpolate method in Color.h and adds
`noexcept`. The roundf call cannot be constexpr on clang. This is the
only incompatibility preventing serenity from building under clang. I
tested this on OSX Big Sur 11.3 and 11.3.1, and everything works with
this change.
|
|
This briefly inverts the selected card when the user attempts to make
an invalid play.
|
|
Since the introduction of multi-select, we have had both `on_selection`
and `on_selection_change`, the latter of which was only invoked when a
change in selection came in through the model.
This removes `AbstractView::on_selection` and replaces it usage with
the more explicit `on_selection_change` everywhere.
|
|
|
|
Models that contain UV co-ordinates are now supported,
and will display with a texture wrapped around it, provided
a `bmp` with the same name as the object is in the same
directory as the 3D Model.
|
|
The software rasterizer now samples a texture passed to us from the
GL context. This is currently a bit of a hack, as we should be
scanning from a list of texture units and checking if they are
enabled. For now, this at least gives some visual confirmation
that texturing is working as it should
|
|
|
|
Some very primitive Texture State management. Data can now be
uploaded to textures.
|
|
Texture names can now be allocated via
`glGenTextures` and deallocated via `glDeleteTextures`.
|
|
There is some really wild stuff going on in the OpenGL spec for this..
The Khronos website states that GLsizei is a 32-bit non-negative value
used for sizes, however, some functions such as `glGenTextures` state
that the input `n` could be negative, which implies signage. Most other
implementations of `gl.h` seem to `typedef` this to `int` so we should
too.
|
|
Instead of being its own separate unrelated class.
This automatically makes typed array properties available to it,
as well as making it available to the runtime.
|
|
This is useful for debugging *our* implementation of wasm :P
|
|
|
|
|
|
|
|
This finally works correctly. :tm:
|
|
Prior to this commit, we would be dropping an extra frame.
|
|
This implements the 8 i<n>.truncate.f<n>_<s> instructions.
|
|
This allows the JS side to access the wasm memory, assuming it's
exported by the module.
This can be used to draw stuff on the wasm side and display them from
the js side, for example :^)
|
|
These limits are in units of page size, not bytes.
Also fixes incorrect debug logs.
|
|
This is implemented as a ByteBuffer* in a variant, so its size should
only be increased by an index.
|
|
This allows Wasm code to call javascript functions.
|
|
This impl is *extremely* simple, and is missing a lot of things, it's
also not particularly spec-compliant in some places, but it's definitely
a start :^)
|