aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2014-05-02 23:19:27 +1000
committerNeil <nyamatongwe@gmail.com>2014-05-02 23:19:27 +1000
commit42ce770c6497f865ce34a93f63cc376c3152f3c4 (patch)
treefe434ad7ed4e7f63bb12c9fb1f4e128aacbd29ba
parent5a1126b68cbcd6b49534e9daa0eebe3a354e3f73 (diff)
downloadscintilla-mirror-42ce770c6497f865ce34a93f63cc376c3152f3c4.tar.gz
Use exact SciFnDirect function signature for DirectFunction as earlier version
depended on undefined behaviour.
-rw-r--r--cocoa/ScintillaCocoa.h2
-rw-r--r--cocoa/ScintillaCocoa.mm6
-rw-r--r--gtk/ScintillaGTK.cxx6
-rw-r--r--qt/ScintillaEditBase/ScintillaQt.cpp4
-rw-r--r--qt/ScintillaEditBase/ScintillaQt.h2
-rw-r--r--win32/ScintillaWin.cxx6
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<ScintillaCocoa *>(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<ScintillaGTK *>(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<ScintillaQt *>(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<ScintillaWin *>(ptr)->WndProc(iMessage, wParam, lParam);
}
extern "C"