]> sigrok.org Git - libsigrokdecode.git/commitdiff
sdcard_sd: Remove a list that needs manual maintenance.
authorUwe Hermann <redacted>
Fri, 10 Jan 2020 23:17:44 +0000 (00:17 +0100)
committerUwe Hermann <redacted>
Fri, 10 Jan 2020 23:17:44 +0000 (00:17 +0100)
Instead of checking if a command is in a fixed list/tuple (that needs
to be manually updated every time a new command becomes supported),
simply check if the respective handling method for the command exists.

This fixes the bug of the CMD16 handler not being called, and will
prevent similar bugs in the future.

decoders/sdcard_sd/pd.py

index b6a076bfa6c03661518f4dbcadf986de3389c144..32a25aea185c22933bb1f2271b0a29de5d9f6068 100644 (file)
@@ -181,7 +181,7 @@ class Decoder(srd.Decoder):
         # Handle command.
         s = 'ACMD' if self.is_acmd else 'CMD'
         self.cmd_str = '%s%d (%s)' % (s, self.cmd, self.cmd_name(self.cmd))
-        if self.cmd in (0, 2, 3, 6, 7, 8, 9, 10, 13, 41, 51, 55):
+        if hasattr(self, 'handle_%s%d' % (s.lower(), self.cmd)):
             self.state = St['HANDLE_CMD%d' % self.cmd]
         else:
             self.state = St.HANDLE_CMD999