mirror of
https://github.com/hyprwm/hyprutils.git
synced 2024-12-22 06:09:49 +01:00
Read-only mirror of https://github.com/hyprwm/hyprutils
7e1b6610a2
* sharedptr: dont downcast ptr implentation avoid runtime errors of wrong downcasts by adding a underlaying ptr data getter and only cast the data, downcasting the implentation type isnt inherited from eachother, while the intention was do upcast/downcast a derived class to a base class. found with UBSAN "runtime error: downcast of address which does not point to an object of type "CSharedPointer_::impl<IKeyboard>" note: object is of type "Hyprutils::Memory::CSharedPointer_::impl<CKeyboard>" also make dataNonNull check against != nullptr. * sharedptr: use reinterpret_cast instead of c style make it more type safe, C style casts tries every single one until one works, or not. compilers also produces better warnings/errors when using c++ casts in favour of C style ones. |
||
---|---|---|
.github/workflows | ||
include/hyprutils | ||
nix | ||
src | ||
tests | ||
.clang-format | ||
.gitignore | ||
CMakeLists.txt | ||
flake.lock | ||
flake.nix | ||
hyprutils.pc.in | ||
LICENSE | ||
README.md |
hyprutils
Hyprutils is a small C++ library for utilities used across the Hypr* ecosystem.
Stability
Hyprutils depends on the ABI stability of the stdlib implementation of your compiler. Sover bumps will be done only for hyprutils ABI breaks, not stdlib.
Building
git clone https://github.com/hyprwm/hyprutils.git
cd hyprutils/
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
sudo cmake --install build