|
@@ -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 */
|
|
|
}
|
|
|
|