summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/WebCore/plugins/win/PaintHooks.asm
diff options
context:
space:
mode:
authorPrasanth Ullattil <prasanth.ullattil@nokia.com>2009-08-11 13:10:03 +0200
committerPrasanth Ullattil <prasanth.ullattil@nokia.com>2009-08-11 14:19:27 +0200
commit1056df7f11e4c7964a72e89d02bd3016ccd2c9f1 (patch)
treedd203659889f25fb2ee54919ebc0c63ee974bed9 /src/3rdparty/webkit/WebCore/plugins/win/PaintHooks.asm
parent50f6168a7e0f76124830d63981bb1b8c2fa67f8c (diff)
Add support for hooking BeginPaint/EndPaint on 64Bit Windows
Webkit uses the runtime patching trick explained by "Feng Yuan" for hooking these paint functions. It currently supports only 32bit assembly code. This patch adds support for 64Bit version. Since inline-assemblies are not supported for 64Bit, we have use a seperate .asm file. Reviewed-by: Simon Hausmann Reviewed-by: Thiago Macieira
Diffstat (limited to 'src/3rdparty/webkit/WebCore/plugins/win/PaintHooks.asm')
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/win/PaintHooks.asm50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/3rdparty/webkit/WebCore/plugins/win/PaintHooks.asm b/src/3rdparty/webkit/WebCore/plugins/win/PaintHooks.asm
new file mode 100644
index 0000000000..9128663573
--- /dev/null
+++ b/src/3rdparty/webkit/WebCore/plugins/win/PaintHooks.asm
@@ -0,0 +1,50 @@
+;/*
+; Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
+;
+; This library is free software; you can redistribute it and/or
+; modify it under the terms of the GNU Library General Public
+; License as published by the Free Software Foundation; either
+; version 2 of the License, or (at your option) any later version.
+;
+; This library is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+; Library General Public License for more details.
+;
+; You should have received a copy of the GNU Library General Public License
+; along with this library; see the file COPYING.LIB. If not, write to
+; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+; Boston, MA 02110-1301, USA.
+;*/
+
+;HDC __stdcall _HBeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint);
+
+PUBLIC _HBeginPaint
+
+_TEXT SEGMENT
+
+_HBeginPaint PROC
+ mov r10,rcx
+ mov eax,1017h
+ syscall
+ ret
+_HBeginPaint ENDP
+
+_TEXT ENDS
+
+;BOOL __stdcall _HEndPaint(HWND hWnd, const PAINTSTRUCT* lpPaint);
+
+PUBLIC _HEndPaint
+
+_TEXT SEGMENT
+
+_HEndPaint PROC
+ mov r10,rcx
+ mov eax,1019h
+ syscall
+ ret
+_HEndPaint ENDP
+
+_TEXT ENDS
+
+END