serenity/Meta
DexesTTP 2ab8d474c6 Lagom: Fix leaks in the IDL Wrapper generator
By using RefPtrs to handle interfaces, the IDL parser could store cyclic
references to interfaces that import each other. One main example is the
"EventTarget.idl" and the "AbortSignal.idl" files, which both reference
each other. This caused huge amounts of memory not to be freed on exit.

To fix this, the parsed IDL interfaces are now stored in a HashTable of
NonnullOwnPtr<Interface>, which serves as the sole reference for every
parsed interface. All other usages of the Interface are changed to use
references instead of RefPtrs, or occasionally as raw pointers where
references don't fit inside the data structures.

This new HashTable is static, and as such will automatically be freed
prior to exiting the generator. This ensures that the code generator
properly cleans up after itself.

With this change, The IDL code generators can properly run on Lagom when
compiled with the -DENABLE_ADDRESS_SANITIZER=ON flag, and gets compiled
properly on the CI :^)
2022-05-25 22:25:09 +01:00
..
Azure Meta+CI: Upgrade to ubuntu-22.04 2022-05-24 06:30:57 -04:00
CMake Meta: Add -S to Jakt compiler invocation in compile_jakt 2022-05-25 09:48:28 +02:00
HeaderCheck Meta: Remove obsolete HeaderCheck .gitignore 2022-03-24 20:11:39 -07:00
Lagom Lagom: Fix leaks in the IDL Wrapper generator 2022-05-25 22:25:09 +01:00
Screenshots Meta: Move screenshots into subdir 2022-04-03 13:14:15 +01:00
ShellCompletions/zsh Meta: Add copy-src to commands in ZSH autocomplete script 2022-03-14 22:20:35 +00:00
Websites Everywhere: Use title case for man section titles 2022-02-25 12:06:31 -05:00
analyze-qemu-coverage.sh Meta: Add script to analyze coverage data from an existing disk image 2022-05-02 01:46:18 +02:00
bochsrc Meta: Add SSE3, SMAP and SMEP to our bochsrc 2021-12-28 11:51:50 +01:00
build-image-extlinux.sh Meta: Fix syslinux detection on Arch Linux 2021-07-20 15:12:19 +02:00
build-image-grub.sh Meta: Run 'du' with '--apparent-size', except on macOS 2021-05-16 22:50:46 +01:00
build-image-limine.sh Meta: Bump Limine version to 2.78.2 2022-02-14 11:52:07 +01:00
build-image-qemu.sh Meta: Shellcheck ignore for our expr use (SC2307) 2022-05-24 06:30:57 -04:00
build-manpages-website.sh Meta: Title case 'File Formats' on man.serenityos.org 2022-02-24 23:04:22 +00:00
build-native-partition.sh Meta: Add install-native-partition CMake target installing to a real FS 2022-02-04 12:44:50 +01:00
build-root-filesystem.sh LibCodeComprehension: Re-organize code comprehension related code 2022-05-21 18:15:58 +02:00
check-ak-test-files.sh Meta: Remove unnecessary -i 2021-11-02 12:23:30 +01:00
check-debug-flags.sh Kernel: Support all Intel-defined CPUID feature flags for EAX=1 2022-03-27 18:54:56 +02:00
check-markdown.sh Utilities+Meta: Check icons in markdown-check 2022-02-26 20:05:06 +02:00
check-newlines-at-eof.py LibCodeComprehension: Re-organize code comprehension related code 2022-05-21 18:15:58 +02:00
check-style.py LibCodeComprehension: Re-organize code comprehension related code 2022-05-21 18:15:58 +02:00
check-symbols.sh Meta: Make check-symbols.sh use the correct build directory 2022-01-15 17:51:40 +01:00
check-syscall-lists.sh Meta: Use grep -E/F, not grep -P 2021-11-02 12:23:30 +01:00
convert-markdown-links.lua Meta: Add icons to online man pages 2022-01-17 02:22:33 -08:00
debug-kernel.sh Meta: Allow setting a host IP address to bind to 2022-04-20 14:12:34 +02:00
export-argsparser-manpages.sh Meta: Check auto-generated manpages for completeness on CI 2021-11-01 21:12:58 +01:00
extlinux.conf Kernel: Separate framebuffers from bootmode 2021-10-25 23:38:28 +02:00
generate-embedded-resource-assembly.sh Meta: Get building on NixOS (#5005) 2021-01-22 17:44:05 +01:00
generate-libwasm-spec-test.py Meta: Skip wasm tests whose modules cannot be loaded 2022-03-20 10:44:32 +03:30
generate-libwasm-spec-test.sh Meta: Run the Wasm spec tests in CI 2021-05-27 17:28:41 +04:30
grub-ebr.cfg Kernel: Separate framebuffers from bootmode 2021-10-25 23:38:28 +02:00
grub-gpt.cfg Kernel: Separate framebuffers from bootmode 2021-10-25 23:38:28 +02:00
grub-mbr.cfg Kernel: Separate framebuffers from bootmode 2021-10-25 23:38:28 +02:00
install-ports-tree.sh Everywhere: Replace SERENITY_ROOT with SERENITY_SOURCE_DIR 2021-04-20 15:27:52 +02:00
limine.cfg Meta: Add support for the Limine bootloader 2022-02-14 11:52:07 +01:00
lint-ci.sh Meta+Userland: Run the GML formatter on CI and pre-commit 2022-02-07 18:39:50 +01:00
lint-clang-format.sh LibCodeComprehension: Re-organize code comprehension related code 2022-05-21 18:15:58 +02:00
lint-commit.sh CI: Require a blank line between commit titles and bodies 2022-01-11 23:45:14 +02:00
lint-executable-resources.sh Meta: Add special case for macOS 2021-11-02 12:23:30 +01:00
lint-gml-format.sh Meta+Userland: Run the GML formatter on CI and pre-commit 2022-02-07 18:39:50 +01:00
lint-keymaps.py Everywhere: "file name" => "filename" 2021-04-29 22:16:18 +02:00
lint-missing-resources.sh Meta: Use grep -E/F, not grep -P 2021-11-02 12:23:30 +01:00
lint-ports.py Ports: Sanitize environment before handling Ports 2022-05-21 18:12:07 +02:00
lint-prettier.sh LibJS: Implement ImportCall and HostImportModuleDynamically 2022-01-22 01:21:18 +00:00
lint-python.sh Meta: Get building on NixOS (#5005) 2021-01-22 17:44:05 +01:00
lint-shell-scripts.sh Base: Add some default completions to shellrc 2022-04-18 19:53:10 +04:30
new-project.sh Meta: Add new-project.sh :^) 2021-08-13 21:12:17 +04:30
refresh-serenity-qtcreator.sh Meta: Make QtCreator aware of all CMake files 2021-09-15 20:21:19 +00:00
run.sh Meta+Documentation: Bump required QEMU version 2022-05-24 06:30:57 -04:00
serenity.sh Meta: Validate explicitly set TOOLCHAIN in serenity.sh 2022-05-17 00:53:26 +02:00
serenity_gdb.py Meta: Avoid showing elements in extremely large vectors in gdb 2022-04-01 21:41:41 +01:00
text-to-cpp-string.sh Meta: Use a bash shebang for text-to-cpp-string.sh 2021-01-22 18:41:08 +01:00
tweet-commits.js Meta: Ensure long messages fit in commit tweet 2021-06-18 13:34:17 +01:00