1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-21 18:10:59 +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
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
ClassViewWidget.h Userland: Remove a bunch of unnecessary Vector imports 2022-01-28 23:40:25 +01:00
CMakeLists.txt
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
FindInFilesWidget.h
GMLPreviewWidget.cpp
GMLPreviewWidget.h
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
Language.h
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
Project.h
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
ProjectDeclarations.h
ProjectFile.cpp
ProjectFile.h
ProjectTemplate.cpp LibCore+Everywhere: Return ErrorOr from ConfigFile factory methods 2022-02-16 19:49:41 -05:00
ProjectTemplate.h
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
ToDoEntries.h
ToDoEntriesWidget.cpp
ToDoEntriesWidget.h