HID: simplify an index check in hid_lookup_collection
authorJoe Perches <joe@perches.com>
Fri, 10 Dec 2010 03:29:08 +0000 (19:29 -0800)
committerJiri Kosina <jkosina@suse.cz>
Fri, 10 Dec 2010 14:14:43 +0000 (15:14 +0100)
Save the struct hid_collection * in a temporary to shorten
the generated code a bit and perhaps improve readability.

$ size drivers/hid/hid-core.o*
   text    data     bss     dec     hex filename
  16460      78       8   16546    40a2 drivers/hid/hid-core.o.new
  16469      78       8   16555    40ab drivers/hid/hid-core.o.old

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-core.c

index 86b7155632fb033c4c6027b34fb658d17f78c788..d4c1906313d2c636b7747f729b2275a044a404ed 100644 (file)
@@ -178,10 +178,14 @@ static int close_collection(struct hid_parser *parser)
 
 static unsigned hid_lookup_collection(struct hid_parser *parser, unsigned type)
 {
+       struct hid_collection *collection = parser->device->collection;
        int n;
-       for (n = parser->collection_stack_ptr - 1; n >= 0; n--)
-               if (parser->device->collection[parser->collection_stack[n]].type == type)
-                       return parser->device->collection[parser->collection_stack[n]].usage;
+
+       for (n = parser->collection_stack_ptr - 1; n >= 0; n--) {
+               unsigned index = parser->collection_stack[n];
+               if (collection[index].type == type)
+                       return collection[index].usage;
+       }
        return 0; /* we know nothing about this usage type */
 }