summaryrefslogtreecommitdiff
path: root/Userland/Libraries
AgeCommit message (Collapse)Author
2021-08-08LibDebug: Store 64-bit numbers in AttributeValueDaniel Bertalan
This helps us avoid weird truncation issues and fixes a bug on Clang builds where truncation while reading caused the DIE offsets following large LEB128 numbers to be incorrect. This removes the need for the separate `LongUnsignedNumber` type.
2021-08-08LibDebug: Keep track of 'prologue end'Daniel Bertalan
This LineProgram instruction is emitted by Clang. Although we currently have no use for it (it's mostly a debugger feature), we need to handle this opcode, as otherwise CrashReporter wouldn't work.
2021-08-08LibCoreDump: Make narrowing `uint64_t` => `FlatPtr` conversion explicitDaniel Bertalan
This fixes a build issue on Clang which returns an error if narrowing is performed in a list-initialization.
2021-08-08LibGUI: Add `break` even before empty default labelDaniel Bertalan
Clang is a bit more pedantic than GCC when diagnosing implicit fallthroughs, and doesn't care if the succeeding label only contains a single break statement.
2021-08-08LibGUI: TreeView tree column text painting adjustmentssin-ack
The text was painted with the assumption that no other column would be present after the tree column, which won't always be true. Additionally, some alignment and focus rect-related issues have been fixed.
2021-08-08Browser+LibWeb: Silence some debug spamsTheFightingCatfish
2021-08-08Browser+LibWeb: Make sure the default favicon is loadedTheFightingCatfish
Previously in Browser, when we navigate back from a page that has an icon to a page that does not have an icon, the icon does not update and the old icon is displayed because FrameLoader does not set the default favicon when the favicon cannot be loaded. This patch ensures that Browser receives a new icon bitmap every time a load takes place.
2021-08-08LibGUI: Add show_tooltip_immediately()Tobias Christiansen
This allows an application to display a tooltip without waiting for a timer to fire first.
2021-08-08Userland: Use kmalloc_array() where appropriateAndreas Kling
2021-08-08Everywhere: Replace AK::Singleton => SingletonAndreas Kling
2021-08-07LibCpp: Do macro substitution in the preprocessor instead of the parserItamar
After this change, the parser is completely separated from preprocessor concepts.
2021-08-07LibCpp: Import definitions from headers while processingItamar
When the preprocessor encounters an #include statement it now adds the preprocessor definitions that exist in the included header to its own set of definitions. We previously only aggregated the definitions from headers after processing the source, which was less correct. (For example, there could be an #ifdef that depends on a definition from another header).
2021-08-07LibCpp: Do lexing in the PreprocessorItamar
We now call Preprocessor::process_and_lex() and pass the result to the parser. Doing the lexing in the preprocessor will allow us to maintain the original position information of tokens after substituting definitions.
2021-08-07LibCpp: Support initializing the lexer with a "start line"Itamar
2021-08-07LibGUI: Don't assume GUI::Icon has 16x16 bitmap in AbstractTableViewAndreas Kling
An empty GUI::Icon would cause the column auto-sizing logic to crash.
2021-08-07LibWeb: Add auto as a recognized argument of flex-basisTobias Christiansen
There isn't actually any special treatment of this over 'content' in the FlexFormattingContext, for now both are treated the same. This fixes #9225
2021-08-07LibJS: Implement Temporal.Instant.prototype.subtract()Linus Groh
2021-08-07LibJS: Implement Temporal.Instant.prototype.add()Linus Groh
2021-08-07LibJS: Add missing spec link to Temporal.Instant.prototype.round()Linus Groh
2021-08-07LibJS/Tests: Add length test for Temporal.Instant.prototype.round()Linus Groh
2021-08-07LibJS/Tests: Add length test for Temporal.Instant.prototype.equals()Linus Groh
2021-08-07LibJS/Tests: Fix bad copy and paste that crept into a lot of testsLinus Groh
The top-level function should have been `describe()``, but instead it's been nested `test()`s.
2021-08-07FileSystemAccessServer: Add window title as parameter for opening fileTimothy
2021-08-07LibJS: Cast length to signed integer before subtractionsin-ack
length is size_t as returned, and so subtracting from it may cause underflow. We handle this case by just casting it to a signed value, and the for loop predicate takes care of the rest.
2021-08-07LibJS: Reflect an editorial change in the Temporal specLinus Groh
See: https://github.com/tc39/proposal-temporal/commit/fb9b550
2021-08-07LibJS: Reflect infallibility editorial changes in the Temporal specLinus Groh
See: https://github.com/tc39/proposal-temporal/commit/de918c9
2021-08-07LibGfx: Add alternate_color to draw_lineTobias Christiansen
This alternate_color can be used when drawing dashed lines to have two alternating Colors.
2021-08-06LibSQL: Use compiler generated default functionsLenny Maiorani
Problem: - Clang ToT generates warnings due to user-declared functions causing the implicitly generated assignment operator to not be generated. Solution: - Declare the default constructor `= default`. - Remove the default copy constructor declaration.
2021-08-06LibAudio: Make playing lossy flacs more truthfulKarol Kosek
Playing a lossy flac file resulted in hearing something you'd not like to play. Instead of your lovely bass, you had sounds as if you put a CD-ROM disc to a CD player. It turned out that the size for making signed values was too big, making all the values unsigned. I've used lossyWav[1] (the posix port[2] to be exact) to generate such files. [1]: https://wiki.hydrogenaud.io/index.php?title=LossyWAV [2]: https://github.com/MoSal/lossywav-for-posix
2021-08-06LibAudio: Fix calculation of wasted bits-per-sampleKarol Kosek
The value was always zero.
2021-08-06LibAudio: Make read samples signed when decoding fixed FLAC subframesKarol Kosek
Prior this change, decoding fixed subframes produced "unpleasant crackling noices". While the type doesn't appear so often when using the default settings, encoding files in flac(1) with --fast option uses fixed subframes almost every time. This also applies the logic to the constant subframes, which isn't so important, as the type is generally for the silence, but let's use it as well to avoid inconsistency.
2021-08-06LibGUI: Add ValueSlider widgetMarcus Nilsson
ValueSlider is a more generalized version of OpacitySlider when we need a slider with values displayed. It will always show the current value with a user defined suffix.
2021-08-06LibGUI+Applications: Rename Model::is_valid to is_within_rangesin-ack
The previous name did not describe what the function checked, and was easy to confuse with ModelIndex::is_valid.
2021-08-06LibGUI: Allow TabWidget to remove all tabs except oneTheFightingCatfish
2021-08-06Everywhere: Replace Model::update() with Model::invalidate()sin-ack
Most of the models were just calling did_update anyway, which is pointless since it can be unified to the base Model class. Instead, code calling update() will now call invalidate(), which functions identically and is more obvious in what it does. Additionally, a default implementation is provided, which removes the need to add empty implementations of update() for each model subclass. Co-Authored-By: Ali Mohammad Pur <ali.mpfard@gmail.com>
2021-08-06LibJS: Improve the TypedArray.prototype.find{,Index} testsdavidot
Before this we did not check that it actually gave the first result.
2021-08-06LibJS: Implement proposed TypedArray.prototype.findLast{,Index}davidot
Proposal: https://tc39.es/proposal-array-find-from-last/
2021-08-06LibJS: Implement proposed Array.prototype.findLast{,Index}davidot
Proposal: https://tc39.es/proposal-array-find-from-last/
2021-08-06LibCore: Explicitly declare `environ` in Process.cpp to unbreak macOSAndreas Kling
2021-08-06LibDebug+Everywhere: Make DebugInfo not own the ELF imageAli Mohammad Pur
This is required to avoid copying the image where otherwise a reference would be enough.
2021-08-06Userland: Use Core::Process::spawn() instead of posix_spawn() in placesAndreas Kling
This replaces a bunch of very basic uses of posix_spawn() with the new Core::Process::spawn().
2021-08-06LibCore: Add Core::Process::spawn()Andreas Kling
This is a simple wrapper around posix_spawn() that will help us simplify a bunch of very verbose posix_spawn() invocations. This first version only supports the simplest case: executing an executable without passing arguments or doing anything fancy. More features can be added to cover more cases. :^)
2021-08-05LibJS: Implement Temporal.ZonedDateTime.prototype.getISOFields()Linus Groh
2021-08-05LibJS: Implement Temporal.ZonedDateTime.prototype.toPlainDateTime()Linus Groh
2021-08-05LibJS: Implement Temporal.ZonedDateTime.prototype.toPlainTime()Linus Groh
2021-08-05LibJS: Implement Temporal.ZonedDateTime.prototype.toPlainDate()Linus Groh
2021-08-05LibJS: Implement Temporal.ZonedDateTime.prototype.toInstant()Linus Groh
2021-08-05LibJS: Implement Temporal.ZonedDateTime.prototype.valueOf()Linus Groh
2021-08-05LibWeb: Ignore svg elements outside of <svg> when building layout treeK-Adam
An svg layout element without a `SVGSVGElement` ancestor caused a failed assertion before, because the svg context does not exist when `paint()` is called
2021-08-05LibWeb: Clear SVG context after SVGSVGBox children are paintedK-Adam