From de3131a78debeeb4997bba4a6dffec7384d3b4e6 Mon Sep 17 00:00:00 2001 From: Neil Date: Fri, 2 May 2014 23:19:27 +1000 Subject: Use exact SciFnDirect function signature for DirectFunction as earlier version depended on undefined behaviour. --- cocoa/ScintillaCocoa.h | 2 +- cocoa/ScintillaCocoa.mm | 6 +++--- gtk/ScintillaGTK.cxx | 6 +++--- qt/ScintillaEditBase/ScintillaQt.cpp | 4 ++-- qt/ScintillaEditBase/ScintillaQt.h | 2 +- win32/ScintillaWin.cxx | 6 +++--- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/cocoa/ScintillaCocoa.h b/cocoa/ScintillaCocoa.h index 415094c35..7e4ed7214 100644 --- a/cocoa/ScintillaCocoa.h +++ b/cocoa/ScintillaCocoa.h @@ -177,7 +177,7 @@ public: NSPoint GetCaretPosition(); - static sptr_t DirectFunction(ScintillaCocoa *sciThis, unsigned int iMessage, uptr_t wParam, sptr_t lParam); + static sptr_t DirectFunction(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam); void TimerFired(NSTimer* timer); void IdleTimerFired(); diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm index 563cff839..7e86d86f1 100644 --- a/cocoa/ScintillaCocoa.mm +++ b/cocoa/ScintillaCocoa.mm @@ -787,16 +787,16 @@ void ScintillaCocoa::Redraw() * However this is a Windows metaphor and not used here, hence we just call our fake * window proc. The given parameters directly reflect the message parameters used on Windows. * - * @param sciThis The target which is to be called. + * @param ptr The target which is to be called. * @param iMessage A code that indicates which message was sent. * @param wParam One of the two free parameters for the message. Traditionally a word sized parameter * (hence the w prefix). * @param lParam The other of the two free parameters. A signed long. */ -sptr_t ScintillaCocoa::DirectFunction(ScintillaCocoa *sciThis, unsigned int iMessage, uptr_t wParam, +sptr_t ScintillaCocoa::DirectFunction(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam) { - return sciThis->WndProc(iMessage, wParam, lParam); + return reinterpret_cast(ptr)->WndProc(iMessage, wParam, lParam); } //-------------------------------------------------------------------------------------------------- diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index f13686077..0d868db63 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -309,7 +309,7 @@ private: #endif static gboolean PressCT(GtkWidget *widget, GdkEventButton *event, ScintillaGTK *sciThis); - static sptr_t DirectFunction(ScintillaGTK *sciThis, + static sptr_t DirectFunction(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam); }; @@ -2792,8 +2792,8 @@ gboolean ScintillaGTK::ExposeCT(GtkWidget *widget, GdkEventExpose * /*ose*/, Cal #endif sptr_t ScintillaGTK::DirectFunction( - ScintillaGTK *sciThis, unsigned int iMessage, uptr_t wParam, sptr_t lParam) { - return sciThis->WndProc(iMessage, wParam, lParam); + sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam) { + return reinterpret_cast(ptr)->WndProc(iMessage, wParam, lParam); } sptr_t scintilla_send_message(ScintillaObject *sci, unsigned int iMessage, uptr_t wParam, sptr_t lParam) { diff --git a/qt/ScintillaEditBase/ScintillaQt.cpp b/qt/ScintillaEditBase/ScintillaQt.cpp index b31aa0727..3d727900b 100644 --- a/qt/ScintillaEditBase/ScintillaQt.cpp +++ b/qt/ScintillaEditBase/ScintillaQt.cpp @@ -675,9 +675,9 @@ sptr_t ScintillaQt::DefWndProc(unsigned int, uptr_t, sptr_t) } sptr_t ScintillaQt::DirectFunction( - ScintillaQt *sciThis, unsigned int iMessage, uptr_t wParam, sptr_t lParam) + sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam) { - return sciThis->WndProc(iMessage, wParam, lParam); + return reinterpret_cast(ptr)->WndProc(iMessage, wParam, lParam); } // Additions to merge in Scientific Toolworks widget structure diff --git a/qt/ScintillaEditBase/ScintillaQt.h b/qt/ScintillaEditBase/ScintillaQt.h index d3c5be594..7defd7c05 100644 --- a/qt/ScintillaEditBase/ScintillaQt.h +++ b/qt/ScintillaEditBase/ScintillaQt.h @@ -128,7 +128,7 @@ private: virtual sptr_t WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam); virtual sptr_t DefWndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam); - static sptr_t DirectFunction(ScintillaQt *sciThis, + static sptr_t DirectFunction(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam); protected: diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index e084354f1..3f8cfabe6 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -213,7 +213,7 @@ class ScintillaWin : HWND MainHWND(); static sptr_t DirectFunction( - ScintillaWin *sci, UINT iMessage, uptr_t wParam, sptr_t lParam); + sptr_t ptr, UINT iMessage, uptr_t wParam, sptr_t lParam); static sptr_t PASCAL SWndProc( HWND hWnd, UINT iMessage, WPARAM wParam, sptr_t lParam); static sptr_t PASCAL CTWndProc( @@ -2775,9 +2775,9 @@ sptr_t PASCAL ScintillaWin::CTWndProc( } sptr_t ScintillaWin::DirectFunction( - ScintillaWin *sci, UINT iMessage, uptr_t wParam, sptr_t lParam) { + sptr_t ptr, UINT iMessage, uptr_t wParam, sptr_t lParam) { PLATFORM_ASSERT(::GetCurrentThreadId() == ::GetWindowThreadProcessId(sci->MainHWND(), NULL)); - return sci->WndProc(iMessage, wParam, lParam); + return reinterpret_cast(ptr)->WndProc(iMessage, wParam, lParam); } extern "C" -- cgit v1.2.3