Qian Hong : server: Fix type name of File.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jun 5 06:46:10 CDT 2015


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

Author: Qian Hong <qhong at codeweavers.com>
Date:   Tue Jun  2 22:10:25 2015 +0800

server: Fix type name of File.

---

 dlls/ntdll/tests/om.c |  6 +++---
 server/file.c         | 10 +++++++++-
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c
index b7ef99e..1fa9c47 100644
--- a/dlls/ntdll/tests/om.c
+++ b/dlls/ntdll/tests/om.c
@@ -799,11 +799,11 @@ static void test_query_object(void)
     memset( buffer, 0, sizeof(buffer) );
     status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(buffer), &len );
     ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
-    todo_wine ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
+    ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len );
     str = (UNICODE_STRING *)buffer;
     expected_len = sizeof(OBJECT_TYPE_INFORMATION) + str->Length + sizeof(WCHAR);
-    todo_wine ok( len >= expected_len, "unexpected len %u\n", len );
-    todo_wine ok( str->Buffer && !memcmp( str->Buffer, type_file, sizeof(type_file) ),
+    ok( len >= expected_len, "unexpected len %u\n", len );
+    ok( str->Buffer && !memcmp( str->Buffer, type_file, sizeof(type_file) ),
                   "wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer );
     DeleteFileA( file1 );
     pNtClose( handle );
diff --git a/server/file.c b/server/file.c
index 792bbe0..e70304f 100644
--- a/server/file.c
+++ b/server/file.c
@@ -64,6 +64,7 @@ struct file
 static unsigned int generic_file_map_access( unsigned int access );
 
 static void file_dump( struct object *obj, int verbose );
+static struct object_type *file_get_type( struct object *obj );
 static struct fd *file_get_fd( struct object *obj );
 static struct security_descriptor *file_get_sd( struct object *obj );
 static int file_set_sd( struct object *obj, const struct security_descriptor *sd, unsigned int set_info );
@@ -77,7 +78,7 @@ static const struct object_ops file_ops =
 {
     sizeof(struct file),          /* size */
     file_dump,                    /* dump */
-    no_get_type,                  /* get_type */
+    file_get_type,                /* get_type */
     add_queue,                    /* add_queue */
     remove_queue,                 /* remove_queue */
     default_fd_signaled,          /* signaled */
@@ -273,6 +274,13 @@ static void file_dump( struct object *obj, int verbose )
     fprintf( stderr, "File fd=%p\n", file->fd );
 }
 
+static struct object_type *file_get_type( struct object *obj )
+{
+    static const WCHAR name[] = {'F','i','l','e'};
+    static const struct unicode_str str = { name, sizeof(name) };
+    return get_object_type( &str );
+}
+
 static int file_get_poll_events( struct fd *fd )
 {
     struct file *file = get_fd_user( fd );




More information about the wine-cvs mailing list