[ros-diffs] [tkreuzer] 52401: [OLEAUT32] - add assembly version of call_method for MSVC - fix a syntax error (sizeof(int[3]) is not valid C) - move definitions to the top of the CMakeLists.txt

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Tue Jun 21 13:22:08 UTC 2011


Author: tkreuzer
Date: Tue Jun 21 13:22:07 2011
New Revision: 52401

URL: http://svn.reactos.org/svn/reactos?rev=52401&view=rev
Log:
[OLEAUT32]
- add assembly version of call_method for MSVC
- fix a syntax error (sizeof(int[3]) is not valid C)
- move definitions to the top of the CMakeLists.txt

Added:
    trunk/reactos/dll/win32/oleaut32/msvc.S   (with props)
Modified:
    trunk/reactos/dll/win32/oleaut32/CMakeLists.txt
    trunk/reactos/dll/win32/oleaut32/typelib2.c

Modified: trunk/reactos/dll/win32/oleaut32/CMakeLists.txt
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/oleaut32/CMakeLists.txt?rev=52401&r1=52400&r2=52401&view=diff
==============================================================================
--- trunk/reactos/dll/win32/oleaut32/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/oleaut32/CMakeLists.txt [iso-8859-1] Tue Jun 21 13:22:07 2011
@@ -1,3 +1,24 @@
+
+remove_definitions(-D_WIN32_WINNT=0x502)
+add_definitions(-D_WIN32_WINNT=0x600)
+
+add_definitions(-DPROXY_CLSID_IS="{0xb196b286,0xbab4,0x101a,{0xb6,0x9c,0x00,0xaa,0x00,0x34,0x1d,0x07}}")
+
+add_definitions(
+    -D__WINESRC__
+    -DCOM_NO_WINDOWS_H
+    -D_OLEAUT32_
+    -DPROXY_DELEGATION
+    -DREGISTER_PROXY_DLL
+    -DENTRY_PREFIX=OLEAUTPS_)
+
+include_directories(
+    ${REACTOS_SOURCE_DIR}/include/reactos/libs/libjpeg
+    ${REACTOS_SOURCE_DIR}/include/reactos/wine)
+
+spec2def(oleaut32.dll oleaut32.spec)
+
+add_rpcproxy_files(oleaut32_oaidl.idl oleaut32_ocidl.idl)
 
 list(APPEND SOURCE
     connpt.c
@@ -25,32 +46,12 @@
     ${CMAKE_CURRENT_BINARY_DIR}/oleaut32_ocidl_p.c
     ${CMAKE_CURRENT_BINARY_DIR}/oleaut32.def)
 
-remove_definitions(-D_WIN32_WINNT=0x502)
-add_definitions(-D_WIN32_WINNT=0x600)
-
-add_definitions(-DPROXY_CLSID_IS="{0xb196b286,0xbab4,0x101a,{0xb6,0x9c,0x00,0xaa,0x00,0x34,0x1d,0x07}}")
-
-add_definitions(
-    -D__WINESRC__
-    -DCOM_NO_WINDOWS_H
-    -D_OLEAUT32_
-    -DPROXY_DELEGATION
-    -DREGISTER_PROXY_DLL
-    -DENTRY_PREFIX=OLEAUTPS_)
-
-if(MSC)
-# seems to work, but is this correct ?
-# <compilerflag compilerset="msc">/FIwine/typeof.h</compilerflag>
-add_definitions(/FIwine/typeof.h)
-endif(MSC)
-
-include_directories(
-    ${REACTOS_SOURCE_DIR}/include/reactos/libs/libjpeg
-    ${REACTOS_SOURCE_DIR}/include/reactos/wine)
-
-spec2def(oleaut32.dll oleaut32.spec)
-
-add_rpcproxy_files(oleaut32_oaidl.idl oleaut32_ocidl.idl)
+if(MSVC)
+    set_source_files_properties(${REACTOS_BINARY_DIR}/include/psdk/wincodec_i.c PROPERTIES GENERATED TRUE)
+    list(APPEND SOURCE
+        ${REACTOS_BINARY_DIR}/include/psdk/wincodec_i.c
+        msvc.S)
+endif()
 
 add_library(oleaut32 SHARED ${SOURCE})
 

Added: trunk/reactos/dll/win32/oleaut32/msvc.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/oleaut32/msvc.S?rev=52401&view=auto
==============================================================================
--- trunk/reactos/dll/win32/oleaut32/msvc.S (added)
+++ trunk/reactos/dll/win32/oleaut32/msvc.S [iso-8859-1] Tue Jun 21 13:22:07 2011
@@ -1,0 +1,30 @@
+
+#include <asm.inc>
+
+.code32
+
+PUBLIC _call_method
+_call_method:
+    push ebp
+    mov ebp, esp
+    push esi
+    push edi
+    mov edx, dword ptr ds:[ebp + 12]
+    shl edx, 2
+    jz cm1
+    sub esp, edx
+    and esp, HEX(0FFFFFFF0)
+    mov ecx, dword ptr ds:[ebp + 12]
+    mov esi, dword ptr ds:[ebp + 16]
+    mov edi, esp
+    cld
+    rep movsd
+cm1:
+    call dword ptr ds:[ebp + 8]
+    lea esp, [ebp - 8]
+    pop edi
+    pop esi
+    pop ebp
+    ret
+
+END

Propchange: trunk/reactos/dll/win32/oleaut32/msvc.S
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/reactos/dll/win32/oleaut32/typelib2.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/oleaut32/typelib2.c?rev=52401&r1=52400&r2=52401&view=diff
==============================================================================
--- trunk/reactos/dll/win32/oleaut32/typelib2.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/oleaut32/typelib2.c [iso-8859-1] Tue Jun 21 13:22:07 2011
@@ -1780,7 +1780,7 @@
     insert = HeapAlloc(GetProcessHeap(), 0, sizeof(CyclicList));
     if(!insert)
         return E_OUTOFMEMORY;
-    insert->u.data = HeapAlloc(GetProcessHeap(), 0, sizeof(int[6])+sizeof(int[(num_defaults?4:3)])*pFuncDesc->cParams);
+    insert->u.data = HeapAlloc(GetProcessHeap(), 0, sizeof(int)*6+sizeof(int)*(num_defaults?4:3)*pFuncDesc->cParams);
     if(!insert->u.data) {
         HeapFree(GetProcessHeap(), 0, insert);
         return E_OUTOFMEMORY;




More information about the Ros-diffs mailing list