From e30456b07a8ac6e69df7a277549e70178198f7c9 Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Thu, 7 Dec 2023 11:07:55 +0100 Subject: [PATCH] runtime: explain why we may access the card object directly When we are in the constructor of RuntimeState, we may/must access the card object directly. Let's explain why, since it may not be immediately obvious. Change-Id: I01f74d5f021d46679d1c9fa83fb8753382b0f88f Related: OS#5418 --- pySim/runtime.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pySim/runtime.py b/pySim/runtime.py index 24472226..670babc0 100644 --- a/pySim/runtime.py +++ b/pySim/runtime.py @@ -110,6 +110,12 @@ class RuntimeState: # probe for those applications for f in sorted(set(apps_profile) - set(apps_taken), key=str): try: + # we can not use the lchan provided methods select, or select_file + # since those method work on an already finished file model. At + # this point we are still in the initialization process, so it is + # no problem when we access the card object directly without caring + # about updating other states. For normal selects at runtime, the + # caller must use the lchan provided methods select or select_file! data, sw = self.card.select_adf_by_aid(f.aid) self.selected_adf = f if sw == "9000":