VB Migration Partner

KNOWLEDGE BASE - Language


Previous | Index | Next 

[INFO] The AutoDispose pragma doesn’t account for multiple assignments to same variable

You can use the AutoDispose pragma to automatically generate the code that correctly invoke the Dispose method of an IDisposable object when the object variable is set to Nothing or goes out of scope. However, the AutoDispose pragma assumes that the variable is never reused to reference another object. Consider the following scenario:

    Dim rs As New Recordset
    ' use the ‘rs’ object
    ' ...
    ' assign a new instance to ‘rs’  
    Set rs = New Recorset
    ' ...
    ' clear the ‘rs’  object
    Set rs = Nothing

The AutoDispose pragma forces VB Migration Partner to generate the following code:

    Dim rs As New Recordset
    ' use the Recordset object
    ' ...
    ' assign a new Recordset instance to 'rs'
    Set rs = New Recorset
    ' ...
    ' clear the second Recordset object
    SetNothing6(rs)

It is quite evident that the above code correctly disposes of the second Recordset instance but not the first one. It is therefore necessary to manually insert either a Set rs = Nothing statement in the original VB6 code or a SetNothing6(rs) statement in the migrated code. In the latter case you can use an InsertStatement pragma:

    Dim rs As New Recordset
    ' use the Recordset object
    ' ...
    ' assign a new Recordset instance to 'rs'
    '## InsertStatement SetNothing6(rs)
    Set rs = New Recorset
    ' ...
    ' clear the second Recordset object
    SetNothing6(rs)
Previous | Index | Next 




Follow Francesco Balena on VB6 migration’s group on

LinkedIn





Read Microsoft Corp’s official case study of a VB6 conversion using VB Migration Partner.




Code Architects and its partners offers remote and onsite migration services.

More details




Subscribe to our free newsletter for useful VB6 migration tips and techniques.

newsletter



To learn more about your VB6 applications, run VB6 Analyzer on your source code and send us the generated text file. You will receive a detailed report about your VB6 applications and how VB Migration Partner can help you to quickly and effectively migrate it to .NET.

Get free advice



A fully-working, time-limited Trial Edition of VB Migration Partner allows you to test it against your actual code

Get the Trial




The price of VB Migration Partner depends on the size of the VB6 application, the type of license, and other factors

Request a quote




Migrating a VB6 application in 10 easy steps

Comparing VB Migration Partner with Upgrade Wizard

Migration tools: Feature Comparison Table

All whitepapers