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