History log of /haiku/src/add-ons/kernel/file_systems/packagefs/package/PackageDirectory.cpp
Revision Date Author Comments
# c8eaa6f9 17-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

packagefs: Use WeakReference in PackageNode.

This allows us to stop storing the package flags, which saves 4
bytes per package node (a value that really adds up when there
are thousands upon thousands of PackageNodes), at the cost of an extra
sizeof(int32) allocation for the WeakPointer object per-package (of
which there are are much fewer, of course.)

This also is safer overall, as now consumers of GetPackage() or VFSInit()
will now hit a NULL dereference if they have failed to check if the
package still exists, instead of a use-after-free.

Change-Id: Iea97ffcd491c6e2da7093730a7fa951b84dcefdf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4478
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# d230b5fd 08-Jul-2019 Augustin Cavalier <waddlesplash@gmail.com>

packagefs: Use object caches for the most used node classes.

Slab statistics from KDL show that on a stock nightly image
(i.e. no additional packages besides the standards installed)
there are 43848 *objects* (not bytes) in the PackageNodeAttribute
cache, and 25090 in the PackageFile cache, so this seems more than
worth it.

The last commit seems to reduce memory usage at boot by about 1%,
this commit seems to not affect it at all; but it is a significant
performance optimization and on systems with more packages installed
the effect may be very noticeable.

Change-Id: I676a642ed6003f82b14396e1f02684575d899362


# d8ad2d6f 08-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

packagefs: Rename operator< to HasPrecendenceOver().

As suggested by weinhold on the mailing list.


# 5301f108 05-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

packagefs: Directories with more attributes take precedence over ones with less.

This still preserves the behavior that system packages take precedence over
non-system packages.

Fixes #10071 (at last.)


# 1e7416d9 11-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

packagefs: Organize sources into subdirectories


# 1e7416d9b3846396e2f7d6552e37d72664cd6853 11-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

packagefs: Organize sources into subdirectories