'reply' is allocated in Serialize() at line 120, but is not freed.
Pointed out by Clang Static Analyzer.
Change-Id: I9f7e0c5c2dcb976f11230ad8a5ba38d653b23d6d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5530
Reviewed-by: Fredrik Holmqvist <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Normally the heap's priority will suffice to check if we need to reschedule.
However, in cases where the CPU in question is currently in the middle of
rescheduling already, and it is about to change its priority to "idle",
we can race with it and not notice that we need to send it an ICI.
Previously this meant we would just lose some performance, but after
recent fixes to not reschedule only as necessary, this race led to hangs.
Now we report whether the runqueue we added the thread to was empty
in ThreadData::Enqueue(), and if it was, we then always trigger a
scheduler invocation on the target CPU.
In my testing, this fixes#17847; and at least in my unscientific
benchmarks, improves compile performance by as much as 10% (I saw
~55s -> ~50s in some tests.)
This will allow it to be invoked outside scheduler_cpu.cpp,
and GCC should automatically inline this function within that file
anyway.
No functional change intended.
Instead of 8096 maximum entries, now there will be about 130k.
As there are around ~32k files in the Haiku git tree, this has a
serious impact on "git status" performance: in my testing it sped up
from around 0.95s to 0.39s, or less than half with a "hot" cache
(in a VM backed by an NVMe SSD, may be more dramatic on spinning system.)
Compile performance does not seem very much improved, however.
We are trying to add the enty to the current generation, so we
need to use the current generation's next_index, not the previous.
This was apparently broken since this code was imported. The "miss"
here meant we always acquired the write-lock and then ran the more
expensive add operation, which performs this same check (correctly).
Slight performance improvement seen in basic testing, but nothing
too drastic.
Instead set them in the Init functions. For now, the same
hard-coded sizes are used, so aside from slightly increased storage
on two classes (or not even due to padding), this has no functional change.
uselocale now attempts to create a backend and a databrige.
If the attempt fails due to a missing libroot-addon-icu, uselocale
does nothing (to support applications calling uselocale during
startup to enforce the C locale).
Else, uselocale will fail with ENOMEM.
LocaleBackend::CreateBackend() has been modified to return a status_t
that indicates whether NULL is returned due to out of memory (B_NO_MEMORY)
or due to being unable to load the ICU addon (B_MISSING_LIBRARY).
Change-Id: I0f62ebde5890364c64e6694ec58d38de43ec6841
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5505
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
* If the target is a volume, include a line on the Information tab of
the Get Info window that lists the filesystem name, block size, and
whether the volume is indexed.
* Fixes#16945.
Change-Id: I888ae708a15a2f7729f50806fb59dbb4df506cfa
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5507
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
test_app_server: fix build for SVGViewView.cpp
src/tests/kits/interface/picture/SVGViewView.cpp:
In method `struct rgb_color Svg2PictureView::GetColorAttribute(const
XML_Char **, const char *, unsigned char)':
src/tests/kits/interface/picture/SVGViewView.cpp:258:
warning: unsigned int format, long unsigned int arg (arg 3)
src/tests/kits/interface/picture/SVGViewView.cpp:258:
warning: unsigned int format, long unsigned int arg (arg 4)
src/tests/kits/interface/picture/SVGViewView.cpp:258:
warning: unsigned int format, long unsigned int arg (arg 5)
src/tests/kits/interface/picture/SVGViewView.cpp:264:
warning: unsigned int format, long unsigned int arg (arg 3)
src/tests/kits/interface/picture/SVGViewView.cpp:264:
warning: unsigned int format, long unsigned int arg (arg 4)
src/tests/kits/interface/picture/SVGViewView.cpp:264:
warning: unsigned int format, long unsigned int arg (arg 5)
src/tests/kits/interface/picture/SVGViewView.cpp:276:
warning: int format, int32 arg (arg 3)
src/tests/kits/interface/picture/SVGViewView.cpp:276:
warning: int format, int32 arg (arg 4)
src/tests/kits/interface/picture/SVGViewView.cpp:276:
warning: int format, int32 arg (arg 5)
Change-Id: I886cef4df7f47425db8ee22ec1271d122cb454ea
test_app_server: fix build for ScreenManager.cpp
src/servers/app/ScreenManager.cpp:206: parse error before `('
Add expat build feature to picture Jamfile
src/tests/kits/interface/picture/SVGViewView.h:5: expat.h: No such file
or directory
Change-Id: I83edbc3059d6042482820a43eb41ef16928b8f6b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5504
Reviewed-by: John Scipione <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
EDID is correctly read. It can then be passed to the app_server.
At least the app_server tries to set the native resolution.
It doesn't really help to get further, because the ATOMBios code can't handle newer
table versions (for instance 3.2).
Change-Id: If68828bcfda447ecf7d4432ae2872bbdbc0704d5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5508
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
There is nothing really x86-specific there, other platforms use
ACPI interrupt routing for PCI too.
Change-Id: Ib02e2917902a161c3d79a1049bcd16ba40bb7814
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5277
Reviewed-by: David Karoly <[email protected]>
Reviewed-by: Fredrik Holmqvist <[email protected]>
Reorder font defines to plain, fallback, bold, fallback, fixed, fallback.
Minor functional changes: No BeOS font fallbacks for Haiku apps.
Use FALLBACK_BOLD_FONT_STYLE instead of DEFAULT.
Change-Id: Id053fd9434e8d34290cf68af89cf58fe7811f786
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5497
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
The corresponding Trac wiki page can be deleted once this is merged.
Some of this information is a little out of date, help is welcome on
updating it.
Change-Id: I9157b140bcb5de3fed3c95d994745b5a1cbee1f6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5477
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
-Implemented node and B+Tree based directories support for xfs v5
-Implemented file read support for xfs v5
-Implemented common template function for all data headers check
This patch completes #17783 and #17703
Change-Id: Id4389168d07f31a97e8867e3cb3321b4523b13c0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5483
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
hrev55108 imported the spleen font into the tree and added credits.
hrev56196 removed the spleen font from the tree again, but left the credits.
this commit removes the credits.
Change-Id: I44b7ca1f6100eb86559b48c96db2b3590ee1b9b9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5492
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
- It is possible to call open() on a directory, but FUSE lowlevel
filesystems don't implement that and expect it to be re-routed to the
opendir call. BRoster uses this to read the dir/file attributes to
identify it, so it could not identify directories properly.
- In ReadDir, make sure to not return more entries than asked, as this
confuses the userlandfs protocol communication (the kernel does not
acknowledge the readdir reply, and then the server hits an assert when
receiving the next request instead of the ack).
Change-Id: I9c4e9a3f0fc6e9879d4cfbc0d5402a4733d2218a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5482
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
The previous implementation needed a temporary buffer to store entries
and then sent them to the actual readdir buffer. This is now fixed, the
actual buffer is filled directly.
Also fixes problems with reading the same directory multiple times, and
reading large directories.
Change-Id: I8dc9677ee676144547d17f313a7f2d91fd2bca05
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5480
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
- Import latest version of files from FUSE 2.9.9 (our last
synchronization was with 2.7.4)
- Adjust fuse pkgconfig file to use the POSIX error mapper
automatically, since that's required for all FUSE software
- Implement the lowlevel API in addition to the highlevel one. The
lowlevel API uses inode numbers to identify files, rather than paths,
making it a better fit to the userlandfs architecture.
The FUSE 2.x branch is not maintained anymore by FUSE developers,
however, pretty much no one migrated to FUSE 3.x. So it is more
interesting to implement, rather than 3.x.
Confirmed still working with sshfs and curlftpfs.
Example use:
I tested this with github.com/whoozle/android-file-transfer-linux
- Build the fuse library and copy it to ~/config/non-packaged/add-ons/userlandfs/
- Start the server: /system/servers/userlandfs_server aft-mtp-mount
- Connect your Android phone and put it in USB file transfer mode
- Mount the device: mount -t userlandfs -p 'aft-mtp-mount /boot/home/MyPhone -d -o use_ino' ~/MyPhone
- You can now access your phone data
Change-Id: Ic3efda7ffbc33737e6f4958428fb3ec9939ef105
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5198
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
It needs to be deleted after everything is done.
This seems to fix the crashes I could reproduce on exit in my VM.
So might fix#17583.
(WebView also has fContext, but I assume they are part of a window)
Change-Id: I0125f76b0b2331ac3b6a81d6c20087ebdedbf2f2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5486
Reviewed-by: Fredrik Holmqvist <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>