From 0cd3ff6cbe3979ce207527f79884c49ad53a2905 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Mon, 29 Dec 2008 17:24:33 +0100 Subject: [PATCH] server: Make the class opaque data a client_ptr_t instead of a void pointer. --- dlls/user32/class.c | 4 ++-- dlls/user32/win.c | 4 ++-- include/wine/server_protocol.h | 8 ++++---- server/class.c | 4 ++-- server/protocol.def | 6 +++--- server/trace.c | 10 +++++++--- server/user.h | 2 +- 7 files changed, 21 insertions(+), 17 deletions(-) diff --git a/dlls/user32/class.c b/dlls/user32/class.c index 478ff4f604b..51e6faf462e 100644 --- a/dlls/user32/class.c +++ b/dlls/user32/class.c @@ -357,7 +357,7 @@ static CLASS *CLASS_RegisterClass( LPCWSTR name, HINSTANCE hInstance, BOOL local req->instance = wine_server_client_ptr( hInstance ); req->extra = classExtra; req->win_extra = winExtra; - req->client_ptr = classPtr; + req->client_ptr = wine_server_client_ptr( classPtr ); req->atom = classPtr->atomName; if (!req->atom && name) wine_server_add_data( req, name, strlenW(name) * sizeof(WCHAR) ); ret = !wine_server_call_err( req ); @@ -628,7 +628,7 @@ BOOL WINAPI UnregisterClassW( LPCWSTR className, HINSTANCE hInstance ) req->instance = wine_server_client_ptr( hInstance ); if (!(req->atom = get_int_atom_value(className)) && className) wine_server_add_data( req, className, strlenW(className) * sizeof(WCHAR) ); - if (!wine_server_call_err( req )) classPtr = reply->client_ptr; + if (!wine_server_call_err( req )) classPtr = wine_server_get_ptr( reply->client_ptr ); } SERVER_END_REQ; diff --git a/dlls/user32/win.c b/dlls/user32/win.c index de10de67ecb..08649e898a2 100644 --- a/dlls/user32/win.c +++ b/dlls/user32/win.c @@ -117,11 +117,11 @@ static WND *create_window_handle( HWND parent, HWND owner, LPCWSTR name, wine_server_add_data( req, name, strlenW(name)*sizeof(WCHAR) ); if (!wine_server_call_err( req )) { - handle = wine_server_ptr_handle( reply->handle ); + handle = wine_server_ptr_handle( reply->handle ); full_parent = wine_server_ptr_handle( reply->parent ); full_owner = wine_server_ptr_handle( reply->owner ); extra_bytes = reply->extra; - class = reply->class_ptr; + class = wine_server_get_ptr( reply->class_ptr ); } } SERVER_END_REQ; diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h index 4dcd50daa5f..20fc81f9807 100644 --- a/include/wine/server_protocol.h +++ b/include/wine/server_protocol.h @@ -2789,7 +2789,7 @@ struct create_window_reply user_handle_t parent; user_handle_t owner; int extra; - void* class_ptr; + client_ptr_t class_ptr; }; @@ -3661,7 +3661,7 @@ struct create_class_request mod_handle_t instance; int extra; int win_extra; - void* client_ptr; + client_ptr_t client_ptr; /* VARARG(name,unicode_str); */ }; struct create_class_reply @@ -3682,7 +3682,7 @@ struct destroy_class_request struct destroy_class_reply { struct reply_header __header; - void* client_ptr; + client_ptr_t client_ptr; }; @@ -5052,6 +5052,6 @@ union generic_reply struct set_window_layered_info_reply set_window_layered_info_reply; }; -#define SERVER_PROTOCOL_VERSION 359 +#define SERVER_PROTOCOL_VERSION 360 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */ diff --git a/server/class.c b/server/class.c index 1833a285c5c..0e402ba6314 100644 --- a/server/class.c +++ b/server/class.c @@ -49,7 +49,7 @@ struct window_class mod_handle_t instance; /* module instance */ unsigned int style; /* class style */ int win_extra; /* number of window extra bytes */ - void *client_ptr; /* pointer to class in client address space */ + client_ptr_t client_ptr; /* pointer to class in client address space */ int nb_extra_bytes; /* number of extra bytes */ char extra_bytes[1]; /* extra bytes storage */ }; @@ -141,7 +141,7 @@ atom_t get_class_atom( struct window_class *class ) return class->atom; } -void *get_class_client_ptr( struct window_class *class ) +client_ptr_t get_class_client_ptr( struct window_class *class ) { return class->client_ptr; } diff --git a/server/protocol.def b/server/protocol.def index daa15b7f390..66c2e01cb3a 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -2059,7 +2059,7 @@ enum message_type user_handle_t parent; /* full handle of parent */ user_handle_t owner; /* full handle of owner */ int extra; /* number of extra bytes */ - void* class_ptr; /* pointer to class in client address space */ + client_ptr_t class_ptr; /* pointer to class in client address space */ @END @@ -2646,7 +2646,7 @@ enum message_type mod_handle_t instance; /* module instance */ int extra; /* number of extra class bytes */ int win_extra; /* number of window extra bytes */ - void* client_ptr; /* pointer to class in client address space */ + client_ptr_t client_ptr; /* pointer to class in client address space */ VARARG(name,unicode_str); /* class name */ @REPLY atom_t atom; /* resulting class atom */ @@ -2659,7 +2659,7 @@ enum message_type mod_handle_t instance; /* module instance */ VARARG(name,unicode_str); /* class name */ @REPLY - void* client_ptr; /* pointer to class in client address space */ + client_ptr_t client_ptr; /* pointer to class in client address space */ @END diff --git a/server/trace.c b/server/trace.c index fb717d0035a..9530fde9733 100644 --- a/server/trace.c +++ b/server/trace.c @@ -2623,7 +2623,8 @@ static void dump_create_window_reply( const struct create_window_reply *req ) fprintf( stderr, " parent=%08x,", req->parent ); fprintf( stderr, " owner=%08x,", req->owner ); fprintf( stderr, " extra=%d,", req->extra ); - fprintf( stderr, " class_ptr=%p", req->class_ptr ); + fprintf( stderr, " class_ptr=" ); + dump_uint64( &req->class_ptr ); } static void dump_destroy_window_request( const struct destroy_window_request *req ) @@ -3327,7 +3328,9 @@ static void dump_create_class_request( const struct create_class_request *req ) fprintf( stderr, "," ); fprintf( stderr, " extra=%d,", req->extra ); fprintf( stderr, " win_extra=%d,", req->win_extra ); - fprintf( stderr, " client_ptr=%p,", req->client_ptr ); + fprintf( stderr, " client_ptr=" ); + dump_uint64( &req->client_ptr ); + fprintf( stderr, "," ); fprintf( stderr, " name=" ); dump_varargs_unicode_str( cur_size ); } @@ -3349,7 +3352,8 @@ static void dump_destroy_class_request( const struct destroy_class_request *req static void dump_destroy_class_reply( const struct destroy_class_reply *req ) { - fprintf( stderr, " client_ptr=%p", req->client_ptr ); + fprintf( stderr, " client_ptr=" ); + dump_uint64( &req->client_ptr ); } static void dump_set_class_info_request( const struct set_class_info_request *req ) diff --git a/server/user.h b/server/user.h index d319410f165..b4f35a82244 100644 --- a/server/user.h +++ b/server/user.h @@ -148,7 +148,7 @@ extern void release_class( struct window_class *class ); extern int is_desktop_class( struct window_class *class ); extern int is_hwnd_message_class( struct window_class *class ); extern atom_t get_class_atom( struct window_class *class ); -extern void *get_class_client_ptr( struct window_class *class ); +extern client_ptr_t get_class_client_ptr( struct window_class *class ); /* windows station functions */