|
|
Thread Tools | Display Modes |
05-01-2019, 03:26 PM | #1 |
Human being with feelings
Join Date: May 2015
Location: Québec, Canada
Posts: 5,265
|
Crash when setting track layouts from IReaperControlSurface::SetTrackTitle (FIXED)
Setting a track's TCP or MCP layout using GetSetMediaTrackInfo (or _String) from IReaperControlSurface::SetTrackTitle may crash REAPER when pressing Tab after renaming a track on Linux and macOS.
Also, on Linux and Windows, the position of the track name edit field is incorrect after changing the layout of the previous track: This affects SWS Auto Layout (issues #911 and #1147).
Code:
#define REAPERAPI_IMPLEMENT #include "reaper_plugin_functions.h" static class : public IReaperControlSurface { const char *GetTypeString() override { return ""; } const char *GetDescString() override { return ""; } const char *GetConfigString() override { return ""; } void SetTrackTitle(MediaTrack *track, const char *name) override { if(!strcmp(name, "a")) GetSetMediaTrackInfo(track, "P_TCP_LAYOUT", const_cast<char *>("Big Meter")); } } g_timeSlice; extern "C" REAPER_PLUGIN_DLL_EXPORT int REAPER_PLUGIN_ENTRYPOINT( REAPER_PLUGIN_HINSTANCE instance, reaper_plugin_info_t *rec) { if(!rec) { plugin_register("-csurf_inst", &g_timeSlice); return 0; } if(rec->caller_version != REAPER_PLUGIN_VERSION) return 0; GetSetMediaTrackInfo = (decltype(GetSetMediaTrackInfo))rec->GetFunc("GetSetMediaTrackInfo"); plugin_register = (decltype(plugin_register)) rec->GetFunc("plugin_register"); plugin_register("csurf_inst", &g_timeSlice); return 1; } Code:
Thread 0 Crashed:: reaper Dispatch queue: com.apple.main-thread 0 com.cockos.reaper 0x000000010038332d OpenEditDialog(MediaTrack*, WDL_VWnd*, HWND__*) + 141 1 com.cockos.reaper 0x0000000100594d6b MediaTrack::ControlProc(HWND__*, unsigned int, unsigned long, long) + 1531 2 com.cockos.reaper 0x000000010059474e MediaTrack::TrackCtlProc(HWND__*, unsigned int, unsigned long, long) + 94 3 com.cockos.reaper 0x000000010052a10c SwellDialogDefaultWindowProc(HWND__*, unsigned int, unsigned long, long) + 364 4 com.cockos.reaper 0x0000000100526f1d -[REAPERSwell_hwnd onSwellMessage:p1:p2:] + 829 5 com.cockos.reaper 0x000000010054725a SendMessage(HWND__*, unsigned int, unsigned long, long) + 90 6 com.cockos.reaper 0x000000010058e889 Track_NameEdit_KBHook(MSG*) + 585 7 com.cockos.reaper 0x000000010037fe29 -[REAPERapp sendEvent:] + 2201 8 com.apple.AppKit 0x00007fff8a8e1b68 -[NSApplication run] + 711 9 com.apple.AppKit 0x00007fff8a85e244 NSApplicationMain + 1832 10 com.cockos.reaper 0x0000000100011b1c main + 28 11 com.cockos.reaper 0x0000000100011ae4 start + 52 Code:
#0 0x0000014b0000012a in () #1 0x00000000004a1e6d in () #2 0x00000000004b87ce in () #3 0x00007ffff794224f in SwellDialogDefaultWindowProc(HWND__*, unsigned int, unsigned long, long) (hwnd=0x101edb0, uMsg=273, wParam=66573, lParam=0) at swell-wnd-generic.cpp:6615 #4 0x00007ffff792c27e in SendMessage(HWND__*, unsigned int, unsigned long, long) (hwnd=0x101edb0, msg=273, wParam=66573, lParam=0) at swell-wnd-generic.cpp:307 #5 0x00000000004a1aa2 in () #6 0x00000000009fa80a in SWELLAppMain () #7 0x00007ffff79637eb in SWELLAppMain(int, INT_PTR, INT_PTR) (msg=256, parm1=140737488344800, parm2=0) at swell-appstub-generic.cpp:80 #8 0x00007ffff795e4b9 in OnKeyEvent(GdkEventKey*) (k=0xf76de0) at swell-generic-gdk.cpp:1010 #9 0x00007ffff795f6aa in swell_gdkEventHandler(GdkEvent*, gpointer) (evt=0xf76de0, data=0x0) at swell-generic-gdk.cpp:1378 #10 0x00007ffff7847c86 in () at /usr/lib/libgdk-3.so.0 #11 0x00007ffff7879ab5 in () at /usr/lib/libgdk-3.so.0 #12 0x00007ffff75437bf in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #13 0x00007ffff7545739 in () at /usr/lib/libglib-2.0.so.0 #14 0x00007ffff754577e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #15 0x00007ffff795fa2d in SWELL_RunEvents() () at swell-generic-gdk.cpp:1512 #16 0x00007ffff792d568 in SWELL_RunMessageLoop() () at swell-wnd-generic.cpp:772 #17 0x0000000000413076 in () #18 0x00007ffff79e3ce3 in __libc_start_main () at /usr/lib/libc.so.6 #19 0x000000000041865a in _start ()
__________________
🎁 Donate (PayPal) | Sponsor (GitHub) | The Endless Journey (Keyboard Ensemble) ReaPack, a package manager for REAPER | SWS 2.14 is now available in ReaPack [new!] Developer tools: Lua profiler | Interactive ReaScript | ReaPack Editor | ReaImGui Last edited by cfillion; 05-01-2019 at 07:08 PM. |
05-01-2019, 04:33 PM | #2 |
Administrator
Join Date: Jan 2005
Location: NYC
Posts: 16,117
|
Ah thanks, a stale pointer being used. Fixing!
|
05-01-2019, 07:30 PM | #3 |
Human being with feelings
Join Date: May 2015
Location: Québec, Canada
Posts: 5,265
|
Thank you!
__________________
🎁 Donate (PayPal) | Sponsor (GitHub) | The Endless Journey (Keyboard Ensemble) ReaPack, a package manager for REAPER | SWS 2.14 is now available in ReaPack [new!] Developer tools: Lua profiler | Interactive ReaScript | ReaPack Editor | ReaImGui |
Thread Tools | |
Display Modes | |
|
|