Alexandre Julliard : server: Added access rights mapping to synchronization objects.

Robert Shearman rob at codeweavers.com
Mon Dec 12 11:34:20 CST 2005


Alexandre Julliard wrote:

>@@ -132,6 +133,15 @@ static int event_satisfied( struct objec
>     return 0;  /* Not abandoned */
> }
> 
>+static unsigned int event_map_access( struct object *obj, unsigned int access )
>+{
>+    if (access & GENERIC_READ)    access |= STANDARD_RIGHTS_READ | SYNCHRONIZE | EVENT_QUERY_STATE;
>+    if (access & GENERIC_WRITE)   access |= STANDARD_RIGHTS_WRITE;
>+    if (access & GENERIC_EXECUTE) access |= STANDARD_RIGHTS_EXECUTE;
>+    if (access & GENERIC_ALL)     access |= STANDARD_RIGHTS_ALL | EVENT_ALL_ACCESS;
>+    return access & ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL);
>+}
>+
> static int event_signal( struct object *obj, unsigned int access )
> {
>     struct event *event = (struct event *)obj;
>

Why did you decide to rely on another function to map the access rights? 
It seems that none of the objects' mappings depend on any state in the 
object, so couldn't you have just put the access rights that 
GENERIC_READ, GENERIC_WRITE, GENERIC_EXECUTE and GENERIC_ALL map to 
somewhere associated with the object and have just one mapping function.

-- 
Rob Shearman




More information about the wine-devel mailing list