The local transferEndOffset should be relative to the parent (us),
not to the underlying filesystem. We thus need to subtract our
own offset from the operation's offset.
This fixes a regression from be8080575a5ae9e8ecba3494afdd081cb4fd94a2.
Errors transferring data should now be properly reported in more cases.
i.e. not on Deskbar team menu, menu field menus or the clock
options menu but all regular menus at the top of the window
and other context-click menus.
Change-Id: If551aecd040500973a92fda2138b6ffe03cda279
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8154
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: John Scipione <jscipione@gmail.com>
Some things that call these macros put expressions in them; to avoid
operator precedence problems we should put them in parens.
Change-Id: I57335ffb190c484778c4bc8075d5ca3597f1e7e5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8184
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Lookups are more frequent than cache deletions.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
A compile benchmark seems to have little if any performance improvement.
However, this codepath will be hit when allocating pages that are
cached, so it may provide a more significant improvement once file
caches are fully utilized.
Implemented using __builtin_clz where available, otherwise using
an algorithm derived from "Bit Twiddling Hacks" which is similar
to the one ramfs uses. GCC and Clang seem to unroll the loop on
x86 at least (but it doesn't matter there as the builtin exists,
implemented using the "bsr" instruction.)
After settings Backgrounds to None for all worskapces, I was getting a 100%
reproducible segment violation on "fShowingBitmap->fBitmap->Bounds()" with every
resolution change.
Change-Id: I2a3640a3c33e571d772c1b38b21087346215dca8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8176
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
... whatever motivated this to only work on disabled text views
has been resolved.
Change-Id: I3ae9d056870f1163d3fa074ab9a1dad96c0192f8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8168
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
* Fully implement break-before-make PTE updating, fixing the
race condition that necessitates it.
* Incorporate align-down logic into the normal flow of the table
traversal.
* Drop support for huge pages and for table freeing for now. They
can be reimplemented once we have a fully functional baseline.
* Further adoption of the new ProcessRange coming in subsequent
patches.
Change-Id: I852c63aaeab48b847b4bb99b328dfe071d27bb29
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8139
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
* clang, unlike GCC, does not allow a weak declaration to override
a strong definition. We need to make herror's definition in
addition to declaring the weak alias above.
Change-Id: Iac1c00e66bdd73d6e214e2302e18a0d51b18c9d6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8148
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Does the same thing but _inherited is used so we can change the class.
Change-Id: I6c0bf7b35917da55a3bd4aa15b5bb80063f2b02a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8150
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This allows both guard pages and freed allocations, when memory reuse is
disabled, to be returned to the system, massively reducing the pages that
are actually needed.
The guarded heap obviously still wastes a lot of memory due to using a
dedicated page for every tiny allocation. But with this change it
becomes realistic to run the full userland under the guarded heap for
more than a couple of minutes and with more complex applications than
before.
Change-Id: I479e822f9dbeea3968d41b66fc55b0d285a1f57e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8166
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This shifts another big chunk of packagefs memory usage into dedicated
object caches. It saves a small amount of memory since now we use
caches sized exactly to the object size plus alignment rather than
rounding up to the block allocator size, and also makes clearer in memory
usage statistics how much memory packagefs is using.
We don't need to set the top here, it is already set by CalcRect()
a couple lines up. Our calculation was slightly off causing bug.
Fixes #12558
Change-Id: I022cc661cf55a9d016fd722c701f05fc1f9fea4f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8165
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This is the only case the POSIX specification indicates is portable.
We may be able to implement some of the others that Linux or the BSDs
support if it turns out there are applications that want them, though.
Fixes #19032.
The previous change to this logic (9921f444625e360674f92db84ffae695492233a5)
apparently caused intermittent crashes with various applications. It
seems that EDX is not expected to be clobbered by functions that do not have 64-bit return values, and if it is, crashes result, like #19024.
This commit reworks the logic to not change %edx in the iframe at all
if we don't have a 64-bit return value, and then adjusts the debug logic
to clear %edx before invoking the post-syscall debugger hook. This means
we have to run the post-syscall debugger hook before clearing the
flags, but that should be fine (and perhaps even useful.)
Fixes #19024, and possibly other crashes that have cropped up on
32-bit x86 in the last few weeks, at least.
Change-Id: I3280033bc2dd05aca254555d6ee3b173a270ebf9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8158
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: Michael Lotz <mmlr@mlotz.ch>
The fRenewalTime and fRebindingTime members were never initialized but
assumed to be initially set to 0 when not provided by the DHCP server.
This could lead to negative time values depending on the uninitialized
memory content and would always happen under libroot_debug where memory
is initially cleared to 0xcc. The negative times then lead to endless
loops of sending requests.
Change-Id: I74a5fbd0c75f7de925f591f09db663978ea3f0ea
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8157
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Otherwise the controls look like they are "disabled" and can't be
edited.
Ideally this class would be refactored to use BAbstractSpinner rather
than drawing its own arrows, but that's a problem for another day.
See inline comment: otherwise it might be deleted when we
release it in Disconnect() but before we unlock it.
Also fix _LockConnectedEndpoints() to unset the locker object if
returning an error, rather than returning a locked endpoint that
we don't hold a reference to.
Fixes #18927.
... instead of making a copy like normal. This changes the default
behavior, you may override it by context-click dragging and selecting
Copy or holding the option key to force copy.
Implements #18729
Change-Id: Ib13bec347f300d25de77064ced79693ecbc3a85c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8144
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Minimum menu field width is set by "multiple selections" string width
on volumes menu field or a smaller size that matches R1B4 on rest.
Maximum menu field width chosen to match current based on font size.
Set the max content width to truncate long mime-type names that don't
fit. Add room for the pop-up indicator.
Create member variables to hold menu fields. Resize the menu fields in
AttachedToWindow() after they have been marked because the width
depends on the marked item.
Set member pointers to NULL in constructor where not already set.
ASSERT variables we use are not NULL, they aren't but check anyway.
Use DefaultLabelSpacing() for the spacing between icon and text to make
them font sensitive. DefaultLabelSpacing() is 5px at 12pt font matching
current.
Fixes #18999
Change-Id: I0e52b5aa557c8b5d76f09e0b60fcb965e3ff65e0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8143
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
* Move towards defined constants for getting and setting PTE types.
Change-Id: Ia655b00b4de5ec49a01bf902626d63138e3bbeb1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8113
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
* Move .got to be adjacent to other relro sections.
* Use PC-relative accesses to set the fault handler in
arch_debug_call_with_fault_handler.
Change-Id: I52eec7e2525c15ec50eb4b83e4740519a76cd4a2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8111
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>