aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla/EventContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'embed/mozilla/EventContext.cpp')
-rw-r--r--embed/mozilla/EventContext.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/embed/mozilla/EventContext.cpp b/embed/mozilla/EventContext.cpp
index 78a01e451..7e07e757b 100644
--- a/embed/mozilla/EventContext.cpp
+++ b/embed/mozilla/EventContext.cpp
@@ -527,7 +527,12 @@ nsresult EventContext::GetMouseEventInfo (EphyEmbedEvent *info)
nsresult result;
nsIDOMMouseEvent *aMouseEvent = (nsIDOMMouseEvent*)mEvent;
- aMouseEvent->GetButton ((PRUint16*)&info->mouse_button);
+ /* casting 32-bit guint* to PRUint16* below will break on big-endian */
+ PRUint16 btn;
+ aMouseEvent->GetButton (&btn);
+ info->mouse_button = (guint)btn;
+
+ /* OTOH, casting only between (un)signedness is safe */
aMouseEvent->GetScreenX ((PRInt32*)&info->mouse_x);
aMouseEvent->GetScreenY ((PRInt32*)&info->mouse_y);