1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 11:47:35 +00:00
serenity/Userland/DevTools/HackStudio
Itamar 4d2357f8f3 HackStudio: Don't store a global RefPtr to the HackStudioWidget
Previously, we stored a RefPtr to the HackStudioWidget in the
global scope.

This led to a destruction-order related use-after-free bug, where the
global HackStudioWidget instance destructed after the static-local
GUI::Clipboard instance.
When HackStudioWidget destructs it attempts to use the global Clipboard
instance, which had already been freed.

This caused the Hack Studio process to spin endlessly on exit because
it attempted to access the HashTable of the freed Clipboard object.

We now store a global WeakPtr to the HackStudioWidget instead, and
limit the lifetime of the object to the main function scope.
2022-02-19 11:38:29 +01:00
..
Debugger DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
Dialogs DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
Git DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
LanguageClients HackStudio: Fix path to language-server IPC socket 2022-01-28 13:17:54 +01:00
LanguageServers DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
AutoCompleteResponse.h LibGUI+HackStudio: Add TokenInfo struct for language-server IPC 2022-02-09 00:51:31 +01:00
ClassViewWidget.cpp HackStudio: Add comment about lexicographical insertion to ClassView 2021-06-04 19:29:22 +02:00
ClassViewWidget.h Userland: Remove a bunch of unnecessary Vector imports 2022-01-28 23:40:25 +01:00
CMakeLists.txt HackStudio: Add ProjectBuilder component 2022-01-12 14:55:19 +01:00
CodeDocument.cpp DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
CodeDocument.h DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
Editor.cpp DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
Editor.h DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
EditorWrapper.cpp DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
EditorWrapper.h DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
FindInFilesWidget.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
FindInFilesWidget.h HackStudio: Make FindInFilesWidget reset when opening new project 2021-08-22 10:30:06 +02:00
GMLPreviewWidget.cpp HackStudio: Add GML Preview action tab 2021-07-29 11:33:16 +02:00
GMLPreviewWidget.h HackStudio: Add GML Preview action tab 2021-07-29 11:33:16 +02:00
HackStudio.h HackStudio: Only query token information if semantic highlighting is on 2022-02-12 11:24:32 +01:00
HackStudioWidget.cpp DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
HackStudioWidget.h HackStudio: Only query token information if semantic highlighting is on 2022-02-12 11:24:32 +01:00
Language.cpp HackStudio: Hookup git commit message detection and highlighting 2022-01-18 09:01:16 +01:00
Language.h HackStudio: Hookup git commit message detection and highlighting 2022-01-18 09:01:16 +01:00
LanguageClient.cpp HackStudio: Add tokens_info_result() and tokens_info_result() IPC calls 2022-02-09 00:51:31 +01:00
LanguageClient.h HackStudio: Add tokens_info_result() and tokens_info_result() IPC calls 2022-02-09 00:51:31 +01:00
Locator.cpp DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
Locator.h DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
main.cpp HackStudio: Don't store a global RefPtr to the HackStudioWidget 2022-02-19 11:38:29 +01:00
Project.cpp HackStudio: Add Project::project_is_serenity() function 2022-01-12 14:55:19 +01:00
Project.h HackStudio: Add Project::project_is_serenity() function 2022-01-12 14:55:19 +01:00
ProjectBuilder.cpp HackStudio: Put the Build directory inside the Serenity repository 2022-02-12 11:51:48 +01:00
ProjectBuilder.h HackStudio: Put the Build directory inside the Serenity repository 2022-02-12 11:51:48 +01:00
ProjectDeclarations.cpp LibGfx: Use ErrorOr<T> for Bitmap::try_load_from_file() 2021-11-08 00:35:27 +01:00
ProjectDeclarations.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ProjectFile.cpp HackStudio: Remove unused includes 2021-06-02 23:15:52 +01:00
ProjectFile.h AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
ProjectTemplate.cpp LibCore+Everywhere: Return ErrorOr from ConfigFile factory methods 2022-02-16 19:49:41 -05:00
ProjectTemplate.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
TerminalWrapper.cpp DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
TerminalWrapper.h DevTools: Use default constructors/destructors 2022-02-16 07:33:15 -05:00
ToDoEntries.cpp HackStudio: Clear ToDo entries upon opening new project 2021-08-22 10:30:06 +02:00
ToDoEntries.h HackStudio: Clear ToDo entries upon opening new project 2021-08-22 10:30:06 +02:00
ToDoEntriesWidget.cpp HackStudio: Clear ToDo entries upon opening new project 2021-08-22 10:30:06 +02:00
ToDoEntriesWidget.h HackStudio: Clear ToDo entries upon opening new project 2021-08-22 10:30:06 +02:00