Alexandre Julliard : server: Store module names as client_ptr_t instead of void pointers.

Alexandre Julliard julliard at winehq.org
Tue Dec 30 06:56:54 CST 2008


Module: wine
Branch: master
Commit: 947976f22cb80a0cb14cc3da71622a62f9628968
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=947976f22cb80a0cb14cc3da71622a62f9628968

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Dec 29 17:10:11 2008 +0100

server: Store module names as client_ptr_t instead of void pointers.

---

 dlls/kernel32/debugger.c       |    4 ++--
 dlls/ntdll/loader.c            |    4 ++--
 include/wine/server_protocol.h |    8 ++++----
 server/process.h               |    2 +-
 server/protocol.def            |    6 +++---
 server/trace.c                 |   18 +++++++++++-------
 tools/make_requests            |    1 +
 7 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/dlls/kernel32/debugger.c b/dlls/kernel32/debugger.c
index 78f282f..b50f0c3 100644
--- a/dlls/kernel32/debugger.c
+++ b/dlls/kernel32/debugger.c
@@ -91,7 +91,7 @@ BOOL WINAPI WaitForDebugEvent(
                 event->u.CreateProcessInfo.nDebugInfoSize        = data.info.create_process.dbg_size;
                 event->u.CreateProcessInfo.lpThreadLocalBase     = data.info.create_process.teb;
                 event->u.CreateProcessInfo.lpStartAddress        = data.info.create_process.start;
-                event->u.CreateProcessInfo.lpImageName           = data.info.create_process.name;
+                event->u.CreateProcessInfo.lpImageName           = wine_server_get_ptr( data.info.create_process.name );
                 event->u.CreateProcessInfo.fUnicode              = data.info.create_process.unicode;
                 break;
             case EXIT_THREAD_DEBUG_EVENT:
@@ -105,7 +105,7 @@ BOOL WINAPI WaitForDebugEvent(
                 event->u.LoadDll.lpBaseOfDll           = wine_server_get_ptr( data.info.load_dll.base );
                 event->u.LoadDll.dwDebugInfoFileOffset = data.info.load_dll.dbg_offset;
                 event->u.LoadDll.nDebugInfoSize        = data.info.load_dll.dbg_size;
-                event->u.LoadDll.lpImageName           = data.info.load_dll.name;
+                event->u.LoadDll.lpImageName           = wine_server_get_ptr( data.info.load_dll.name );
                 event->u.LoadDll.fUnicode              = data.info.load_dll.unicode;
                 break;
             case UNLOAD_DLL_DEBUG_EVENT:
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index f07a974..560a932 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -1451,7 +1451,7 @@ static void load_builtin_callback( void *module, const char *filename )
         req->size       = nt->OptionalHeader.SizeOfImage;
         req->dbg_offset = nt->FileHeader.PointerToSymbolTable;
         req->dbg_size   = nt->FileHeader.NumberOfSymbols;
-        req->name       = &wm->ldr.FullDllName.Buffer;
+        req->name       = wine_server_client_ptr( &wm->ldr.FullDllName.Buffer );
         wine_server_add_data( req, wm->ldr.FullDllName.Buffer, wm->ldr.FullDllName.Length );
         wine_server_call( req );
     }
@@ -1533,7 +1533,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file,
         req->size       = nt->OptionalHeader.SizeOfImage;
         req->dbg_offset = nt->FileHeader.PointerToSymbolTable;
         req->dbg_size   = nt->FileHeader.NumberOfSymbols;
-        req->name       = &wm->ldr.FullDllName.Buffer;
+        req->name       = wine_server_client_ptr( &wm->ldr.FullDllName.Buffer );
         wine_server_add_data( req, wm->ldr.FullDllName.Buffer, wm->ldr.FullDllName.Length );
         wine_server_call( req );
     }
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h
index 766ccce..d538d80 100644
--- a/include/wine/server_protocol.h
+++ b/include/wine/server_protocol.h
@@ -75,7 +75,7 @@ struct debug_event_create_process
     int          dbg_size;
     void        *teb;
     void        *start;
-    void        *name;
+    client_ptr_t name;
     int          unicode;
 };
 struct debug_event_exit
@@ -88,7 +88,7 @@ struct debug_event_load_dll
     mod_handle_t base;
     int          dbg_offset;
     int          dbg_size;
-    void        *name;
+    client_ptr_t name;
     int          unicode;
 };
 struct debug_event_unload_dll
@@ -723,7 +723,7 @@ struct load_dll_request
     struct request_header __header;
     obj_handle_t handle;
     mod_handle_t base;
-    void*        name;
+    client_ptr_t name;
     data_size_t  size;
     int          dbg_offset;
     int          dbg_size;
@@ -5052,6 +5052,6 @@ union generic_reply
     struct set_window_layered_info_reply set_window_layered_info_reply;
 };
 
-#define SERVER_PROTOCOL_VERSION 356
+#define SERVER_PROTOCOL_VERSION 357
 
 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */
diff --git a/server/process.h b/server/process.h
index 1f98958..fa80818 100644
--- a/server/process.h
+++ b/server/process.h
@@ -38,7 +38,7 @@ struct process_dll
     struct list          entry;           /* entry in per-process dll list */
     struct file         *file;            /* dll file */
     mod_handle_t         base;            /* dll base address (in process addr space) */
-    void                *name;            /* ptr to ptr to name (in process addr space) */
+    client_ptr_t         name;            /* ptr to ptr to name (in process addr space) */
     data_size_t          size;            /* dll size */
     int                  dbg_offset;      /* debug info offset */
     int                  dbg_size;        /* debug info size */
diff --git a/server/protocol.def b/server/protocol.def
index c2478f1..69d5928 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -91,7 +91,7 @@ struct debug_event_create_process
     int          dbg_size;   /* size of debug info */
     void        *teb;        /* thread teb (in debugged process address space) */
     void        *start;      /* thread startup routine */
-    void        *name;       /* image name (optional) */
+    client_ptr_t name;       /* image name (optional) */
     int          unicode;    /* is it Unicode? */
 };
 struct debug_event_exit
@@ -104,7 +104,7 @@ struct debug_event_load_dll
     mod_handle_t base;       /* base address of the dll */
     int          dbg_offset; /* offset of debug info in file */
     int          dbg_size;   /* size of debug info */
-    void        *name;       /* image name (optional) */
+    client_ptr_t name;       /* image name (optional) */
     int          unicode;    /* is it Unicode? */
 };
 struct debug_event_unload_dll
@@ -659,7 +659,7 @@ typedef union
 @REQ(load_dll)
     obj_handle_t handle;       /* file handle */
     mod_handle_t base;         /* base address */
-    void*        name;         /* ptr to ptr to name (in process addr space) */
+    client_ptr_t name;         /* ptr to ptr to name (in process addr space) */
     data_size_t  size;         /* dll size */
     int          dbg_offset;   /* debug info offset */
     int          dbg_size;     /* debug info size */
diff --git a/server/trace.c b/server/trace.c
index 8ca23f0..3cafe4a 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -459,10 +459,11 @@ static void dump_varargs_debug_event( data_size_t size )
                  event->info.create_process.file, event->info.create_process.process,
                  event->info.create_process.thread );
         dump_uint64( &event->info.create_process.base );
-        fprintf( stderr, ",offset=%d,size=%d,teb=%p,start=%p,name=%p,unicode=%d}",
+        fprintf( stderr, ",offset=%d,size=%d,teb=%p,start=%p,name=",
                  event->info.create_process.dbg_offset, event->info.create_process.dbg_size,
-                 event->info.create_process.teb, event->info.create_process.start,
-                 event->info.create_process.name, event->info.create_process.unicode );
+                 event->info.create_process.teb, event->info.create_process.start );
+        dump_uint64( &event->info.create_process.name );
+        fprintf( stderr, ",unicode=%d}", event->info.create_process.unicode );
         break;
     case EXIT_THREAD_DEBUG_EVENT:
         fprintf( stderr, "{exit_thread,code=%d}", event->info.exit.exit_code );
@@ -473,9 +474,10 @@ static void dump_varargs_debug_event( data_size_t size )
     case LOAD_DLL_DEBUG_EVENT:
         fprintf( stderr, "{load_dll,file=%04x,base", event->info.load_dll.handle );
         dump_uint64( &event->info.load_dll.base );
-        fprintf( stderr, ",offset=%d,size=%d,name=%p,unicode=%d}",
-                 event->info.load_dll.dbg_offset, event->info.load_dll.dbg_size,
-                 event->info.load_dll.name, event->info.load_dll.unicode );
+        fprintf( stderr, ",offset=%d,size=%d,name=",
+                 event->info.load_dll.dbg_offset, event->info.load_dll.dbg_size );
+        dump_uint64( &event->info.load_dll.name );
+        fprintf( stderr, ",unicode=%d}", event->info.load_dll.unicode );
         break;
     case UNLOAD_DLL_DEBUG_EVENT:
         fputs( "{unload_dll,base=", stderr );
@@ -1071,7 +1073,9 @@ static void dump_load_dll_request( const struct load_dll_request *req )
     fprintf( stderr, " base=" );
     dump_uint64( &req->base );
     fprintf( stderr, "," );
-    fprintf( stderr, " name=%p,", req->name );
+    fprintf( stderr, " name=" );
+    dump_uint64( &req->name );
+    fprintf( stderr, "," );
     fprintf( stderr, " size=%u,", req->size );
     fprintf( stderr, " dbg_offset=%d,", req->dbg_offset );
     fprintf( stderr, " dbg_size=%d,", req->dbg_size );
diff --git a/tools/make_requests b/tools/make_requests
index 82ffff0..eeec934 100755
--- a/tools/make_requests
+++ b/tools/make_requests
@@ -36,6 +36,7 @@ my %formats =
     "user_handle_t" => [  4,   4,  "%08x" ],
     "process_id_t"  => [  4,   4,  "%04x" ],
     "thread_id_t"   => [  4,   4,  "%04x" ],
+    "client_ptr_t"  => [  8,   8,  "&dump_uint64" ],
     "mod_handle_t"  => [  8,   8,  "&dump_uint64" ],
     "lparam_t"      => [  8,   8,  "&dump_uint64" ],
     "apc_param_t"   => [  8,   8,  "&dump_uint64" ],




More information about the wine-cvs mailing list