Show errors in top toolbar instead#23
Closed
vadi2 wants to merge 132 commits intoDelwing:errors-button-in-toolbarfrom
Closed
Show errors in top toolbar instead#23vadi2 wants to merge 132 commits intoDelwing:errors-button-in-toolbarfrom
vadi2 wants to merge 132 commits intoDelwing:errors-button-in-toolbarfrom
Conversation
…udlet#5280) * Refactor the shortcut adjustments out - not sure why the action text has no tr() anymore but it still works..! * Join Functions, If to Switch, Shortcut indirection - removing "unset" function in lieu of an optional bool parameter in "set" - reworking if/else cascade into a nice switch for readability - even more readabily: drop much repeated code & set shortcut once at the end * Revert shortcut indirection - This could otherwise drop shortcuts from ALL taskbar items. While this seems fair for now, it could have unintended consequences later. So stay as is for now. * Also use setShortcuts during toolbar creation * Define toolbar2 items in order of display * Mention new shortcuts in tool-tips * Mention new shortcuts in tool-tips * Finally set toolbar2 shortcuts * Add header data * Add header data * Undo switch, c++ can't handle strings * Stupid ; * Forgot ) as well * tr() necessary after all * move comment before function * inverse logic * typo * use inversed logic
This was suggested by the Discord User Kaylee#0064 in the mudlet-development channel on 2021/06/11T18:56Z. Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
SlySven
reviewed
Jun 26, 2021
| <bool>false</bool> | ||
| <bool>false</bool> | ||
| </property> | ||
| <property name="text"> |
There was a problem hiding this comment.
This change is just Git noise - if you can manually put it back to the original position it will disappear and make the changeset (slightly) smaller!
🤓
SlySven
reviewed
Jun 26, 2021
SlySven
left a comment
There was a problem hiding this comment.
This PR to @Delwing 's PR is mistitled - as it is it adds the action to show errors to the top menu-bar NOT the top toolbar! 😜
OTOH If one was going to add it to the top toolbar then it should be added to the top menu bar as well anyhow...
Owner
|
I like this idea more. |
* (autocommit) Updated text for translation Co-authored-by: mudlet-machine-account <mudlet-machine-account@users.noreply.github.com>
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.1.5 to 2.2.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v2.1.5...v2.2.0) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Sign dmgs with hardened runtime * Add codesigning via gon * Fix indentation
…file (Mudlet#5307) This is so they can be considered when using the search facilities of the Qt Creator IDE with the qmake project file. Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
…5313) This is done by hiding the connect profile dialogue as quickly as possible after the load or connect buttons have been clicked (and before the possibly lengthy profile loading operations commenced). This should close Mudlet#5303. Also, it was found that the: `(void) dlgConnectionProfiles::slot_connectToServer()` slot method was redundant and could be removed. Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
…udlet#5227) Provide a means to get and set the state of push down buttons (the latter without executing the associate command or script). It requires adding members to the `TAction` class to keep track of the `EAction` or `TFlipButton` instance that is the implementation of the button on a `TEasyButton` or `TToolBar` respectively. As it happens this showed that the previous code to regenerate them was creating new buttons each time but was not deleting the existing ones that were getting replaced. Also: * made some members of the `TAtion` class (the name, script and both commands) private as otherwise there is no point in the setters and getters also provided! * simplified the existing `getButtonState()` {that only works within the script for a button) to remove an unneeded intermediate local (`int`) value. Revised to combine ID and name getters and setters for button state Note that for the getter this is an intermediate stage as is should be possibble to combine it with the existing `getButtonState()` function that takes NO arguments but only works within the Lua script for a push-down button. Revised to combine new getter functionality into existing getButtonState This simplifies the UI so that `getButtonState()` works the same as before but if an button's ID number or "name" is supplied as an argument the state of the corresponding button (as a boolean though, NOT the existing and, TBH, odd, integer value 1 or 2, that the original function produces) is returned. In the event that the matching item is NOT a push-down button, or that it does not match an existing button then a 'nil' + (run-time) error message is returned instead. Revised to use ID consistently in two functions added/modified in this PR Refactored to extract code to get TAction instance from {g|s}etButtonState(...) This was strongly urged upon me by @keneanung & @vadi2 ...! Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
This should close Mudlet#5295 by providing the code that is missing from `(void) TRoom::readJsonSymbol(...)` - I think it was omitted because the person who coded the ability to colourise the room symbol text was working on that whilst I was coding the JSON map handling. It also fixes: * a Qt advisory (warning) to use a const reference when using a C++ `for` loop to iterate through a QJsonArray of custom environements (colors). * a failure to update the player room indicator when it is changed by loading a Json Map file. * a comment in `(void) Host::getPlayerRoomStyleDetails(...)` that is redundant since we previously removed the mutex for accessors. Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
* New translations mudlet-lua.json (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Finnish) * New translations mudlet-lua.json (Finnish) * New translations mudlet.ts (Swedish) * New translations mudlet-lua.json (Swedish) * New translations mudlet.ts (Finnish) * New translations mudlet.ts (Finnish) * New translations mudlet.ts (Finnish) * New translations mudlet.ts (Finnish) * New translations mudlet.ts (Finnish) * New translations mudlet.ts (Finnish) * New translations mudlet.ts (Finnish) * New translations mudlet.ts (Finnish) * New translations mudlet.ts (Finnish)
Co-authored-by: mudlet-machine-account <mudlet-machine-account@users.noreply.github.com>
* Add Finnish language to translations * Update language name
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.2.0 to 2.3.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v2.2.0...v2.3.0) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Mudlet#5286) Providing an empty table as the second argument (i.e. without sets of sub-tables as x, y, z coordinates) was causing a fatal crash. This will close issue Mudlet#5272. Also: * fix up some other error messages in the addCustomLine function that referred to the wrong argument index - or didn't mention which one was involved at all. * silence some warnings in the same function caused by casting floating point numbers to integers or down-casting 64-bit `long long int`s to (32-bit) `int`s. * fix handling for the fifth argument NOT being a three-color component (RGB) table - so that it throws a `lua_error(...)` if a table is not provided - previously it was ignoring this defect. Signed-off-by: Stephen Lyons <slysven@virginmedia.com> Co-authored-by: Vadim Peretokin <vperetokin@gmail.com>
Profile name comes first so it's easier to differentiate between many open profiles
* Implement new commands selectCmdLineText and Geyser.CommandLine:selectText * Add exception for linter * Revert the change Co-authored-by: Vadim Peretokin <vperetokin@gmail.com>
* Add busted tests for gmod module
* Add printDebug and printError lua wrappers around debugc, and error to provide more information, including stacktrace, for your debug and error messages. * Add links to where the documentation will reside, once it is written. * Add tests for printDebug and printError * Make errorc internal only for use by printError, and adjust it so its formatting is more in line with the existing errors messages * allow errorc to be global if and only if the profile is 'Mudlet self-test' in order for tests to be able to spy on it. * Make tests work with windows or linux path delimiters
…#5395) * BugFix: try and make connectExitStub(...) work as per the API This PR should enable connectExitStub(...) to work as close to the existing published API as possible: * connectExitStub((integer) fromRoomID, (integer)toRoomID, (integer or string) direction) where direction is the initial(s) or full, lower-case, un-hypenated ENGLISH word for one of the 12 normal exit directions - this will make a two way exit between the given direction of the fromRoomID room to the toRoomID room AND the corresponding reverse direction exit from the toRoomID room. The rooms need not be the same Area but they must BOTH have stub exits in the required direction. * `connectExitStub((integer) fromRoomID, (integer) toRoomID)` - this will make a two way exit between the fromRoomID room to the toRoomID room AND the corresponding reverse direction exit from the toRoomID room. The rooms need not be the same Area but the fromRoomID must have only ONE stub exit with an opposite (reverse) direction one in the toRoomID one - either room can have other stub exits. Should there be more than one pair of stub exits a nil + error message will be produced listing the choices for the direction that can be passed to the three argument function call to make the exits wanted. * `connectExitStub((integer) fromRoomID, (integer or string) dirction)` - this will make a two way exit between the stub exit in the fromRoomID room to the NEAREST other room IN THE SAME AREA which has a stub exit in the reverse direction and which lies in the correct relative position (except for the `in`/`out` directions where this is not relevant). Should the direction be given as an integer in the range 1 to 12 this will be rejected (via a nil + error message) because it is ambiguous then whether the number represents a direction or a toRoomID. Potentially unlike the prior code, this version properly detects whether a string or number is supplied as the direction argument. Also: * to allow the reporting of the direction as a number and a string in error messages the `(QString) TRoom::dirCodeToString(const int)` method has been made `static` so that it can be used in the `TLuaInterpreter` class. * as indirectly mentioned above `(int) TLuaInterpreter::dirToNumber(lua_State*, int)` has been revised to check for a string or integer argument being examined - the prior code may not work as anticipated because it used `lua_isxxxx(...)` functions which can coerce the value they are dealing with (a number can be coerced into a string) - which messes with the logic. * in places in the revised methods the integer constant values have been replaced with the `DIR_XXXXX` values defined in the `TRoom` class header file. * to simplify (!) the coding the three different forms of the Lua API are implemented in three separate `(QString) TMap::connectExitStubByXxxx(...) methods which collectively replace the original `(void) TMap::connectExitStub(...)` one. They are responsible for generating most of the Lua API error messages for this function and they indicate success by returning an empty string. This should close Mudlet#2386. Revise: add a suggestion to the user on how to proceed on a message Signed-off by: Stephen Lyons <slysven@virginmedia.com> Co-authored-by: Vadim Peretokin <vperetokin@gmail.com>
* Only enable IRE driver GA bugfix for IRE games * Review feedback
* Unregister fonts upon package/module uninstall * Add missing newline
…er ldoc comments (Mudlet#5471)
* initial secure IRC * Update TLuaInterpreter.cpp * Update TLuaInterpreter.cpp * applied suuggestions * missed one this part made it where if you changed settings while connected then it would not properly connect again * add tooltip mentioning port number suggestion Communi desktop client automatically checks the box if you type in 6697, 7000, or 7070. https://github.com/communi/communi-desktop/blob/master/src/app/connectpage.cpp#L45 RFC 7194 just mentions 6697
Co-authored-by: mudlet-machine-account <mudlet-machine-account@users.noreply.github.com>
Co-authored-by: mudlet-machine-account <mudlet-machine-account@users.noreply.github.com>
Remove trimmed() from one spot in the tab completion code. Look closer at it later and see if there is a reason it was there. Trimmed does front and back, but back comes from the autocomplete dictionary thing so I -think- this is only consequence, unless the suggestion thing includes spaces at the end or something odd like that. Issue 579.
* use painter event instead of proxy for tab style change * codefactor * override painterEvent * get rid of TStyle class as it is not needed anymore * try to please clang tidy * suggestions
…iable (Mudlet#5464) It turns out that the variable concerned, `__Pick` is a very badly named (as symbols containing a double underscore or an underscore and followed by an upper-case letter are explicitly reserved, e.g. see: https://stackoverflow.com/a/1449301/4805858 ) Fortunately, it isn't needed and there is no need to pass the class member it is a copy of via the `drawRoom(...)` method in the `T2DMap` class as that can use the class value directly quite safely - as it never modifies it. Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
This removes the need for the code that uses the `dlgRoomExits` class from having to also call that class's `init()` method - the room ID for which the dialogue is being used is now to be provided in the constructor rather than in the now made private method. As a side-effect it become obvious that there is no need to provide the room ID as an argument to the `dlgRoomExit::initExit(...)` method as the value is already available in the class's member `(int) mRoomID`! This PR is a part that has been extracted from the draft (and to be replaced) PR Mudlet#5308 - that is to be broken up into smaller, easier to digest, chunks! 8-) Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
) These have no place in C++ code! Unfortunately there are some in third party bits which can't be fixed here but should be raised upstream. This should help with Mudlet#1650. During review it became necessary to remove some changes that clang-tidy choked on, hence the revision to the title to say: "(some of)"! There may be a better way - but it doesn't jump out at me - to deal with the outstanding ones. Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
…udlet#5501) As the header file that contains the structure: `inline static const OrderedMap<QString, GameDetails> scmDefaultGames` is used by so many other classes it causes nearly one hundred compile time warnings (50 each) of these: `missing initializer for member 'mudlet::GameDetails::websiteInfo' [-Wmissing-field-initializers]` `missing initializer for member 'mudlet::GameDetails::icon' [-Wmissing-field-initializers]` Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
…short + add position as option for setTitle (Mudlet#5493) * get rid of shrink_title and add position to title * Update GeyserAdjustableContainer.lua * change position to format * resetTitle should really reset the title now
* Add workflow to run Danger checks * Add danger checks in JS * Update CONTRIBUTING with new PR standards being enforced via Danger in this PR * Update workflows which open PRs to have their titles conform to the new PR title rules
* Improve PTB changelog generation * Make the headings actually headings, and remove the extra breaks. Remove commented out code. * Make it look more like our last release post changelogs
…ipt. (Mudlet#5508) * Remove emoji from the ptb changelog, as it turns out they are not rendered properly * Adjust changelog not to include categories with no changes in them
…xits (Mudlet#5505) This will make changing/adding the columns easier as part of what was created as the draft (and to be replaced) PR Mudlet#5308 - that is to be broken up into smaller, easier to digest, chunks! 8-) There is a single set of constants which are defined in the `exitstreewidget` class but used also by the `dlgRoomExit` one by virtue of making it a friend of the former. As it happens I spotted the need for both classes to have these constants when I reviewed `(void) ExitsTreeWidget::keyPressEvent(QKeyEvent*)` and spotted that I had not revised it to close the correct persistent editors in the merge commit 83db9f9 (part of PR Mudlet#439) seven years ago! This will make changing/adding the columns easier as part of what was Revised slightly (converted an empty switch "default:" case from a `;` to a `{}`) to placate the CodeFactor god/daemon...! Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
### This is for LINUX only! This pulls in changes for Unicode 13.1. It also will remove older versions of the font that prior versions of Mudlet will place in its own bit of the file-system so that the FontManager class will not try to load more than one instance of a font with an identical "family name" (which it will not IIRC). Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
Author
|
Done as Mudlet#5511. |
Delwing
pushed a commit
that referenced
this pull request
Feb 3, 2026
…rocessing (Mudlet#8571) <!-- Keep the title short & concise so anyone non-technical can understand it, the title appears in PTB changelogs --> #### Brief overview of PR changes/additions Fix: heap-use-after-free when cleanup runs during alias/trigger/key processing #### Motivation for adding to Mudlet Fixes crash when running Mudlet#8559 (comment) benchmark on Linux. #### Other info (issues closed, discussion etc) ==617553==ERROR: AddressSanitizer: heap-use-after-free on address 0x51200086e6d0 at pc 0x589b650367f6 bp 0x7ffc44dbc700 sp 0x7ffc44dbc6f8 READ of size 8 at 0x51200086e6d0 thread T0 #0 0x589b650367f5 in Tree<TAlias>::isActive() const (/home/vadi/Programs/Mudlet/build/src/mudlet+0xe8a7f5) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #1 0x589b65d81408 in TAlias::match(QString const&) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1bd5408) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #2 0x589b6560c156 in AliasUnit::processDataStream(QString const&) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1460156) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #3 0x589b65c872b4 in Host::send(QString, bool, bool) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1adb2b4) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #4 0x589b65d96517 in TCommandLine::enterCommand(QKeyEvent*) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1bea517) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #5 0x589b65d93095 in TCommandLine::event(QEvent*) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1be7095) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #6 0x7ac668391c8a in QApplicationPrivate::notify_helper(QObject*, QEvent*) /home/qt/work/qt/qtbase/src/widgets/kernel/qapplication.cpp:3307:31 #7 0x7ac66839b2f0 in QApplication::notify(QObject*, QEvent*) /home/qt/work/qt/qtbase/src/widgets/kernel/qapplication.cpp:2725:39 #8 0x7ac668b83f7f in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109:24 #9 0x7ac66840cc0b in QWidgetWindow::event(QEvent*) /home/qt/work/qt/qtbase/src/widgets/kernel/qwidgetwindow.cpp:285:23 #10 0x7ac668391c8a in QApplicationPrivate::notify_helper(QObject*, QEvent*) /home/qt/work/qt/qtbase/src/widgets/kernel/qapplication.cpp:3307:31 #11 0x7ac668b83f7f in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109:24 #12 0x7ac6677ee8e2 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) /home/qt/work/qt/qtbase/src/gui/kernel/qguiapplication.cpp:2609:46 #13 0x7ac655cf9a04 in QIBusPlatformInputContext::filterEventFinished(QDBusPendingCallWatcher*) /home/qt/work/qt/qtbase/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp:523:57 #14 0x7ac668be8b74 in QtPrivate::QSlotObjectBase::call(QObject*, void**) /home/qt/work/qt/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461:57 #15 0x7ac668be8b74 in void doActivate<false>(QObject*, int, void**) /home/qt/work/qt/qtbase/src/corelib/kernel/qobject.cpp:4255:30 #16 0x7ac6671e5142 in void QMetaObject::activate<void, QDBusPendingCallWatcher*>(QObject*, QMetaObject const*, int, void*, QDBusPendingCallWatcher* const&) /home/qt/work/qt/qtbase/src/corelib/kernel/qobjectdefs.h:319:17 #17 0x7ac6671e5142 in QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) /home/qt/work/qt/qtbase_build/src/dbus/DBus_autogen/include/moc_qdbuspendingcall.cpp:137:32 #18 0x7ac668bdd56b in QObject::event(QEvent*) /home/qt/work/qt/qtbase/src/corelib/kernel/qobject.cpp:1411:31 #19 0x7ac668391c8a in QApplicationPrivate::notify_helper(QObject*, QEvent*) /home/qt/work/qt/qtbase/src/widgets/kernel/qapplication.cpp:3307:31 #20 0x7ac668b83f7f in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109:24 #21 0x7ac668b879e4 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) /home/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1904:36 #22 0x7ac668e7d416 in postEventSourceDispatch /home/qt/work/qt/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246:39 #23 0x7ac6667145c4 (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5d5c4) (BuildId: 1eb6131419edb83b2178b682829a6913cf682d75) #24 0x7ac666773736 (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0xbc736) (BuildId: 1eb6131419edb83b2178b682829a6913cf682d75) #25 0x7ac666713a62 in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5ca62) (BuildId: 1eb6131419edb83b2178b682829a6913cf682d75) #26 0x7ac668e7caad in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/qt/work/qt/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399:43 #27 0x7ac668b9002a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) /home/qt/work/qt/qtbase/src/corelib/kernel/qeventloop.cpp:186:22 #28 0x7ac668b8ba59 in QCoreApplication::exec() /home/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1452:36 #29 0x589b64ab0675 in main (/home/vadi/Programs/Mudlet/build/src/mudlet+0x904675) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #30 0x7ac66602a1c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16 #31 0x7ac66602a28a in __libc_start_main csu/../csu/libc-start.c:360:3 #32 0x589b649c1d04 in _start (/home/vadi/Programs/Mudlet/build/src/mudlet+0x815d04) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) 0x51200086e6d0 is located 16 bytes inside of 296-byte region [0x51200086e6c0,0x51200086e7e8) freed by thread T0 here: #0 0x589b64a9b9f1 in operator delete(void*) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x8ef9f1) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #1 0x589b65d80711 in TAlias::~TAlias() (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1bd4711) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #2 0x589b6560eefc in AliasUnit::doCleanup() (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1462efc) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #3 0x589b65c8e88d in Host::incomingStreamProcessor(QString const&, int) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1ae288d) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #4 0x589b651b73b5 in TMainConsole::runTriggers(int) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x100b3b5) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #5 0x589b64e39c4b in TBuffer::commitLine(char, unsigned long&) (/home/vadi/Programs/Mudlet/build/src/mudlet+0xc8dc4b) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #6 0x589b64e28d4e in TBuffer::translateToPlainText(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, bool) (/home/vadi/Programs/Mudlet/build/src/mudlet+0xc7cd4e) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #7 0x589b651b638d in TMainConsole::printOnDisplay(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, bool) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x100a38d) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #8 0x589b64f9ed5b in TLuaInterpreter::feedTriggers(lua_State*) (/home/vadi/Programs/Mudlet/build/src/mudlet+0xdf2d5b) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #9 0x7ac66942ffa0 in luaD_precall /build/lua5.1-rMDsVj/lua5.1-5.1.5/src/ldo.c:320:10 #10 0x7ac66943ad7a in luaV_execute /build/lua5.1-rMDsVj/lua5.1-5.1.5/src/lvm.c:591:17 #11 0x7ac66942e96c in luaD_call /build/lua5.1-rMDsVj/lua5.1-5.1.5/src/ldo.c:378:5 #12 0x7ac66942af70 in luaD_rawrunprotected /build/lua5.1-rMDsVj/lua5.1-5.1.5/src/ldo.c:116:3 #13 0x7ac66942bb94 in luaD_pcall /build/lua5.1-rMDsVj/lua5.1-5.1.5/src/ldo.c:464:12 #14 0x7ac66942bce0 in lua_pcall /build/lua5.1-rMDsVj/lua5.1-5.1.5/src/lapi.c:821:12 #15 0x589b64fd65f1 in TLuaInterpreter::call(QString const&, QString const&, bool) (/home/vadi/Programs/Mudlet/build/src/mudlet+0xe2a5f1) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #16 0x589b65d84d31 in TAlias::execute() (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1bd8d31) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #17 0x589b65d84577 in TAlias::match(QString const&) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1bd8577) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #18 0x589b6560c156 in AliasUnit::processDataStream(QString const&) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1460156) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #19 0x589b65c872b4 in Host::send(QString, bool, bool) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1adb2b4) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #20 0x589b65d96517 in TCommandLine::enterCommand(QKeyEvent*) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1bea517) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #21 0x589b65d93095 in TCommandLine::event(QEvent*) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1be7095) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #22 0x7ac668391c8a in QApplicationPrivate::notify_helper(QObject*, QEvent*) /home/qt/work/qt/qtbase/src/widgets/kernel/qapplication.cpp:3307:31 previously allocated by thread T0 here: #0 0x589b64a9b171 in operator new(unsigned long) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x8ef171) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #1 0x589b6500f595 in TLuaInterpreter::startTempAlias(QString const&, QString const&) (/home/vadi/Programs/Mudlet/build/src/mudlet+0xe63595) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #2 0x589b6512c41d in TLuaInterpreter::tempAlias(lua_State*) (/home/vadi/Programs/Mudlet/build/src/mudlet+0xf8041d) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #3 0x7ac66942ffa0 in luaD_precall /build/lua5.1-rMDsVj/lua5.1-5.1.5/src/ldo.c:320:10 #4 0x7ac66943ad7a in luaV_execute /build/lua5.1-rMDsVj/lua5.1-5.1.5/src/lvm.c:591:17 #5 0x7ac66942e96c in luaD_call /build/lua5.1-rMDsVj/lua5.1-5.1.5/src/ldo.c:378:5 #6 0x7ac66942af70 in luaD_rawrunprotected /build/lua5.1-rMDsVj/lua5.1-5.1.5/src/ldo.c:116:3 #7 0x7ac66942bb94 in luaD_pcall /build/lua5.1-rMDsVj/lua5.1-5.1.5/src/ldo.c:464:12 #8 0x7ac66942bce0 in lua_pcall /build/lua5.1-rMDsVj/lua5.1-5.1.5/src/lapi.c:821:12 #9 0x589b64fd65f1 in TLuaInterpreter::call(QString const&, QString const&, bool) (/home/vadi/Programs/Mudlet/build/src/mudlet+0xe2a5f1) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #10 0x589b65d84d31 in TAlias::execute() (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1bd8d31) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #11 0x589b65d84577 in TAlias::match(QString const&) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1bd8577) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #12 0x589b6560c156 in AliasUnit::processDataStream(QString const&) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1460156) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #13 0x589b65c872b4 in Host::send(QString, bool, bool) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1adb2b4) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #14 0x589b65d96517 in TCommandLine::enterCommand(QKeyEvent*) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1bea517) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #15 0x589b65d93095 in TCommandLine::event(QEvent*) (/home/vadi/Programs/Mudlet/build/src/mudlet+0x1be7095) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) #16 0x7ac668391c8a in QApplicationPrivate::notify_helper(QObject*, QEvent*) /home/qt/work/qt/qtbase/src/widgets/kernel/qapplication.cpp:3307:31 SUMMARY: AddressSanitizer: heap-use-after-free (/home/vadi/Programs/Mudlet/build/src/mudlet+0xe8a7f5) (BuildId: c98a5e4208b6daa52aa1b083c4ee6c4ab4552cc4) in Tree<TAlias>::isActive() const Shadow bytes around the buggy address: 0x51200086e400: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x51200086e480: fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa 0x51200086e500: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd 0x51200086e580: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x51200086e600: fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa =>0x51200086e680: fa fa fa fa fa fa fa fa fd fd[fd]fd fd fd fd fd 0x51200086e700: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x51200086e780: fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa 0x51200086e800: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd 0x51200086e880: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x51200086e900: fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==617553==ABORTING Co-authored-by: Vadim Peretokin <vadi2@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brief overview of PR changes/additions
Show errors in top toolbar instead of the bottom one
Motivation for adding to Mudlet
With 7 buttons at the bottom, it's a bit too many and looks messy
Other info (issues closed, discussion etc)