Bug? Code execution skips my IFs !!!

Sepehr_b

Member
Hi,
In my code, I came into that it skips (ignores) my IF conditions and executes the next line after that. I tried many parts and finally could make the IF condition visible to the compiler by adding a dummy function before IF conditions. see the code bellow :

ambigious IF blockes:
Private Sub etBarcode_EnterPressed
    Try
        If etBarcode.Text.Length > 0 Then
            Dim OkYet As Boolean = True
            ' check the format (lenght and starting characters)
            Fn.DoNothing
            If OkYet = True And (etBarcode.Text.Length <> 13 Or etBarcode.Text.CharAt(0) <> "3") Then
                Fn.ErrorTone("شناسه رهگیری باید بک عبارت عددی 13 رقمی باشد و با 3 شروع میشود")
                OkYet = False
            End If
            ' check if it is in current list and repeating barcode
            Fn.DoNothing
            If OkYet = True Then
                Dim FDSID As Int = Fn.IfNull(B4XPages.MainPage.db.ExecQuerySingleResult($"Select FDSID FROM FactorDetailSerials WHERE FId = ${FId} And SmtTC = '${etBarcode.Text}'"$),0)
                If FDSID > 0 Then
                    clv_ItemClick (lstFDSID.IndexOf(FDSID)  ,FDSID)
                    clv.ScrollToItem(lstFDSID.IndexOf(FDSID))
                    Fn.okTone($"شناسه رهگیری ${etBarcode.Text} قبلا در این فاکتور ثبت شده است و تکراری است!"$)
                    OkYet = False
                End If
            End If
            Fn.DoNothing
            If OkYet = True Then ' get the TC info from server or create it and get the created info
                Dim NeedUpload As Boolean = False
                ' first, query the PartSerial info from server
                Dim mapPartSerial As Map
                mapPartSerial.Initialize
                ...
                ...

and the doNothing is :
DoNothing:
Public Sub DoNothing()
    ' this routine do nothing
    ' this is used in some if - end ifs
End Sub

if I comment the fn.DoNothing calls, the the following IF condition lines are agnored!

I am using B4A ver 12.80
I wonder why!?!?!
 

Sepehr_b

Member
Run the project step-by-step, pressing F8 (in debug mode).
I did it and by running step-by-step, I found it out!
I saw that it skips my IFs! and when I added the dummy function, It didn't.
I was searching for some compiler optimization setting, (shortening the if conditions in compiler) but I didn't find any
 

RB Smissaert

Well-Known Member
Licensed User
Longtime User
I noticed that if the If condition produces a False then that code line may (or never will?) not be highlighted when running in Debug mode.
It won't be ignored though in Release mode.

RBS
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…