1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 03:08:11 +00:00
Commit graph

6966 commits

Author SHA1 Message Date
Andreas Kling
bde9c2bc65 LibGUI: Add GUI::Window::try_add_menu()
This is a fallible variant of add_menu() that returns ErrorOr.
2021-11-24 13:52:01 +01:00
Andreas Kling
6b79745aa4 LibGUI: Add GUI::Widget::try_set_layout<T>(...)
This is a fallible variant of set_layout<T>(...) that returns ErrorOr.
2021-11-24 13:52:01 +01:00
Andreas Kling
bc79be362d LibGUI: Add GUI::Menubar::try_add_menu()
This is a fallible variant of Menubar::add_menu() that returns ErrorOr.
2021-11-24 13:52:01 +01:00
Andreas Kling
b81ce827b6 LibCore: Add Core::Object::try_add<T>(...)
This is a fallible version of add<T>(...) that returns ErrorOr<T>.
It can be used together with TRY() to handle allocation failures when
instantiating new Core::Objects.
2021-11-24 13:52:01 +01:00
Vyacheslav Pukhanov
2189cc6bf1 LibGUI: Reverse FilteringProxyModel update propagation flow
FilteringProxyModel is a narrowing projection of its parent model with
a filter applied. That means that updates of FilteringProxyModel should
not propagate to its parent model, but the opposite - updates happening
in the parent model should "trickle down" and trigger an update of the
filtering model.
2021-11-24 13:46:09 +01:00
thankyouverycool
781bc67a96 LibGfx: Correct BitmapFont row indexing when un/masking fonts
Now indexes by total bytes per glyph to account for changes made
to row's pointer type in 3ca00c8. Fixes glyphs not showing and
saving correctly in FontEditor.
2021-11-24 16:05:40 +03:30
Linus Groh
78724fdd33 LibJS: Don't accept UTC designators in strings for plain Temporal types
This is a normative change in the Temporal spec.

See: cd2dc7d
2021-11-24 08:56:03 +00:00
Linus Groh
836ce8ee5d LibJS: Fix parse ErrorType used in parse_temporal_date_string()
TemporalInvalidDateString, not TemporalInvalidDateTimeString.
2021-11-24 08:38:50 +00:00
Andreas Kling
b6f49924be LibDesktop: Make allowlist APIs return ErrorOr<void>
This makes it very smooth to use TRY() when setting up these lists,
as you can see in the rest of this commit. :^)
2021-11-24 00:25:23 +01:00
Andreas Kling
8b7b726680 LibCore: Add kill() syscall wrapper 2021-11-24 00:25:22 +01:00
Timothy Flynn
7f780e43a6 LibCore: Allow moving, but not copying, DirIterator
An explicit move constructor is required to null-out the moved-from
directory descriptor. Otherwise, we would call closedir() twice when
using ErrorOr<DirIterator>::release_value().
2021-11-23 22:58:05 +01:00
Linus Groh
55dbd19a16 LibJS: Update to_largest_temporal_unit() to allow undefined fallback
This is required for Temporal.Duration.prototype.round(). Subsequently,
this now returns ThrowCompletionOr<Optional<String>>, which brings the
signature in line with that of to_smallest_temporal_unit().
Much nicer! :^)
2021-11-23 21:03:05 +00:00
Andreas Kling
5a3f5582ba LibCore: Add try_create(...) helper to all Core::Object derived classes
This is like construct(...) but returns ErrorOr<NonnullRefPtr<T>>.
2021-11-23 15:44:59 +01:00
Andreas Kling
16356ca478 LibCore: Add syscall wrappers for read() and write() 2021-11-23 15:44:59 +01:00
Federico Guerinoni
221a32577e LibGUI: Support applying AutocompleteBox suggestions with mouse
Fixes: #8004
2021-11-23 13:43:11 +00:00
Andreas Kling
3db9979e40 LibCore: Add syscall wrapper for stat() 2021-11-23 12:23:54 +01:00
Andreas Kling
4a213869f2 LibCore: Add syscall wrapper for ftruncate() 2021-11-23 12:23:54 +01:00
Andreas Kling
4bf08e4d52 LibCore: Add syscall wrapper for close() 2021-11-23 12:23:54 +01:00
Andreas Kling
adb9b86807 LibGfx: Use Core::System::open() in Gfx::Bitmap :^) 2021-11-23 12:23:54 +01:00
Andreas Kling
0ed5f84bd9 LibCore: Use open() wrapper in Core::MappedFile :^) 2021-11-23 12:23:54 +01:00
Andreas Kling
50416c286d LibCore: Add syscall wrapper for open() 2021-11-23 11:59:50 +01:00
Andreas Kling
094fa900a3 LibCore: Use mmap() and munmap() wrappers in Core::MappedFile 2021-11-23 11:51:46 +01:00
Andreas Kling
45842a5208 LibCore: Add syscall wrapper for munmap() 2021-11-23 11:51:11 +01:00
Andreas Kling
53e9b9758e LibCore: Add syscall wrapper for mmap()
For convenience on SerenityOS, this also takes a custom alignment
request, and a memory region name. These are non-POSIX extensions.
2021-11-23 11:48:40 +01:00
Andreas Kling
a62d16fbe9 LibCore: Use syscall wrappers in MappedFile::map_from_fd_and_close() 2021-11-23 11:36:00 +01:00
Andreas Kling
58fb3ebf66 LibCore+AK: Move MappedFile from AK to LibCore
MappedFile is strictly a userspace thing, so it doesn't belong in AK
(which is supposed to be user/kernel agnostic.)
2021-11-23 11:33:36 +01:00
Andreas Kling
c1a3968c66 LibCore: Make LocalSocket takeover mechanism return ErrorOr<T> 2021-11-23 11:33:36 +01:00
Andreas Kling
c37a02341b LibCore: Add Core::System wrappers for fstat() and fcntl() 2021-11-23 11:33:36 +01:00
Andreas Kling
21a5fb0fa2 LibCore+LibSystem: Move syscall wrappers from LibSystem to LibCore
With this change, System::foo() becomes Core::System::foo().

Since LibCore builds on other systems than SerenityOS, we now have to
make sure that wrappers work with just a standard C library underneath.
2021-11-23 11:33:36 +01:00
Andreas Kling
acc2eccede LibSystem: Add wrapper for fstat() 2021-11-23 11:33:36 +01:00
Mustafa Quraish
7720644ae2 LibCore: Let ArgsParser::parse() accept Main::Arguments
Instead of manually passing in `arguments.argc` and `arguments.argv`,
we can now just pass in the arguments directly.
2021-11-22 21:13:42 -08:00
Mustafa Quraish
a0ef655451 LibGUI: Let Application constructor accept in Main::Arguments
Instead of manually passing in `arguments.argc` and `arguments.argv`,
we can now just pass in the arguments directly.
2021-11-22 21:13:42 -08:00
Ali Mohammad Pur
3ca00c8ae6 LibGfx: Avoid unaligned loads and stores in GlyphBitmap 2021-11-22 21:10:25 -08:00
kleines Filmröllchen
b14a64b3c8 Piano: Move to LibDSP's Classic synthesizer
Almost all synthesizer code in Piano is removed in favor of the LibDSP
reimplementation.

This causes some issues that mainly have to do with the way Piano
currently handles talking to LibDSP. Additionally, the sampler is gone
for now and will be reintroduced with future work.
2021-11-22 22:26:17 +01:00
kleines Filmröllchen
3ca059da2d LibDSP: Create Classic synth
The Classic synthesizer is a replication of Piano's old synthesizer
engine that is removed in the next commit.
2021-11-22 22:26:17 +01:00
kleines Filmröllchen
7663fbb19e LibDSP: Introduce ProcessorEnumParameter 2021-11-22 22:26:17 +01:00
kleines Filmröllchen
cc9aab7462 LibDSP: Add Envelope abstraction
For the upcoming synthesizer, having an abstracted ADSR envelope concept
is highly desirable. Additionally, Envelope is mostly constexpr and
therefore super fast :^)
2021-11-22 22:26:17 +01:00
Pedro Pereira
a436f0c668 LibMain: Rename .arguments to .strings :^)
Before this change, we would need to write arguments.arguments to access
the Span<>, which doesn't feel too pretty.
2021-11-22 22:13:22 +01:00
Andreas Kling
3d34216b9a LibSystem: Add ErrorOr<T> wrapper for sigaction() :^) 2021-11-22 19:28:31 +01:00
Andreas Kling
4e530135d5 AK+LibSystem+LibMain: Add Error::from_syscall() for syscall failures
This creates an error that contains the name of the syscall that failed.
This allows error handlers to print out the name of the call if they
want to. :^)
2021-11-22 19:28:31 +01:00
Andreas Kling
d3cf68a540 LibMain: Add a new library for more ergonomic userspace entry functions
By linking with LibMain, your program no longer needs to provide main().
Instead, execution begins in this function:

    ErrorOr<int> serenity_main(Main::Arguments);

This allows programs that link with LibMain to use TRY() already in
their entry function, without having to do manual ErrorOr unwrapping.

This is very experimental, but it seems like a nice idea so let's try it
out. :^)
2021-11-22 19:28:31 +01:00
Andreas Kling
317ceb0ee2 LibSystem: Disable stack protector in syscall wrappers on i686
This is a hack to avoid a circular dependency issue with the stack check
failure handler being in LibC.

This is not ideal, and there's most likely a better way to solve this.

That said, LibSystem should not have anything but thin wrappers around
system calls, so stack protectors have limited utility here anyway.
2021-11-22 19:28:31 +01:00
Andreas Kling
dc486fa3f9 LibSystem: Add pledge() and unveil() wrappers that return ErrorOr<void>
These will be more ergonomic to use together with TRY(). :^)
2021-11-22 18:34:08 +01:00
davidot
0982a73d1d LibJS: Parse async generator functions 2021-11-21 21:46:39 +00:00
davidot
5d0f666f22 LibJS: Don't set a prototype property on async functions
This is now as defined in the spec. However since we execute async
functions in bytecode by transforming it to a generator function it must
have a prototype for the GeneratorObject. We check whether it is an
async function and in that case use the hardcoded generator object
prototype. This also ensures that user code cannot override this
property thus preventing exposing internal implementation details.
2021-11-21 21:46:39 +00:00
davidot
de46a2cff1 LibJS: Parse async arrow functions 2021-11-21 21:46:39 +00:00
Linus Groh
0619c34703 LibJS: Implement Temporal.PlainDateTime.prototype.since() 2021-11-21 20:04:19 +00:00
Linus Groh
803eddbb62 LibJS: Implement Temporal.PlainDateTime.prototype.until() 2021-11-21 20:04:19 +00:00
Linus Groh
aed444253c LibJS: Implement Temporal.PlainTime.prototype.since() 2021-11-21 20:04:19 +00:00
Linus Groh
2ac1774fd3 LibJS: Implement Temporal.PlainTime.prototype.until() 2021-11-21 20:04:19 +00:00