@@ -21,11 +21,17 @@ int usbh_register_all_classes(struct usbh_context *uhs_ctx)
2121 struct usbh_class_data * cdata_registered ;
2222 bool already_registered = false;
2323
24+ if (cdata_existing == NULL ) {
25+ continue ;
26+ }
27+
2428 /* Check if already registered */
25- SYS_SLIST_FOR_EACH_CONTAINER (& uhs_ctx -> class_list , cdata_registered , node ) {
26- if (cdata_existing == cdata_registered ) {
27- already_registered = true;
28- break ;
29+ if (!sys_slist_is_empty (& uhs_ctx -> class_list )) {
30+ SYS_SLIST_FOR_EACH_CONTAINER (& uhs_ctx -> class_list , cdata_registered , node ) {
31+ if (cdata_existing == cdata_registered ) {
32+ already_registered = true;
33+ break ;
34+ }
2935 }
3036 }
3137
@@ -65,16 +71,9 @@ bool usbh_class_is_matching(struct usbh_class_data *cdata,
6571 for (int i = 0 ; cdata -> filters [i ].flags != 0 ; i ++ ) {
6672 const struct usbh_class_filter * filter = & cdata -> filters [i ];
6773
68- if (filter -> flags & USBH_CLASS_FILTER_VID ) {
69- if (filter -> vid != device_info -> vid ) {
70- continue ;
71- }
72- }
73-
74- if (filter -> flags & USBH_CLASS_FILTER_VID ) {
75- if (filter -> vid == device_info -> vid ) {
76- continue ;
77- }
74+ if ((filter -> flags & USBH_CLASS_FILTER_VID ) &&
75+ (filter -> vid != device_info -> vid )) {
76+ continue ;
7877 }
7978
8079 if (filter -> flags & USBH_CLASS_FILTER_CODE_TRIPLE ) {
0 commit comments