G#

cancel
Showing results for 
Search instead for 
Did you mean: 

Inheritance Error?

Solved!
Go to solution

Hello everyone:

       When I create Queue_Support Class as farther,then I create UI_Class inherit from Queue_Support Class directly, UI_class works.but when I create Update Loop class,then I click change Inheritance,choose Queue_Support as Update Loop class'farther,Update Loop class doesn't works(create error).what's the matter?  

       I am very sorry for that my english is very poor.

0 Kudos
Message 1 of 12
(6,934 Views)

it seems that when change Inheritance,Kenerl.VI doesn't update correctly.

0 Kudos
Message 2 of 12
(6,927 Views)
Solution
Accepted by topic author yanzhanglin

Are you on LabVIEW 2020? I found a bug that happens when you change inheritance in LV2020. What happens is that all Call By Parent nodes gets replaced by the actual VI, which results in infinite recursion and out of memory error. This only occurs in LV2020. 

Certified LabVIEW Architect
Message 3 of 12
(6,926 Views)

yes, I use labview2020

 

how can I deal with this problem,or When will it be fixed

0 Kudos
Message 4 of 12
(6,923 Views)

it means that G# can't be used in lv2020?

0 Kudos
Message 5 of 12
(6,908 Views)
Solution
Accepted by topic author yanzhanglin

No, it means that if you change inheritance in LV2020 using the built-in G#-function, you will need to manually replace all the instances of the changed class' kernel.vi in kernel.vi with the Call by Parent node. Just search for all instances of that VI in that VI and do a replace.

Certified LabVIEW Architect
Message 6 of 12
(6,893 Views)

If the COVID19 didn't impact the release schedule, the 2020 SP1 release should be happening anytime soon. Given the severity of this bug, my gut feeling is that it will be fixed within this release.

 

Cheers

Andrea

0 Kudos
Message 7 of 12
(6,885 Views)

@thols wrote:

Are you on LabVIEW 2020? I found a bug that happens when you change inheritance in LV2020. What happens is that all Call By Parent nodes gets replaced by the actual VI, which results in infinite recursion and out of memory error. This only occurs in LV2020. 


Strange. I wonder what has changed in LV to cause this. We're Calling the standard LVOOP change inheritance i assume?

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 8 of 12
(6,882 Views)

It's not a LabVIEW bug. It's that Call Parent Method was renamed to Call Parent Class Method. This method is excluded from when replacing SubVIs when changing inheritance. So its an easy fix in G#. I have attached an update of the failing VI which shall be put in <LabVIEW 2020>\resource\Framework\Providers\AddQ\G#IDE\support\ScriptingLib.

 

I just updated to LV2020 f1, but since that did not help with this issue I opened up the G# code and it was pretty simple to find.

 

To anyone else who wants to contribute, the code is at https://github.com/weaddquality/gsharp

 

Perhaps there are other places in the G# code which relies on the name of a VI which had its name change with the introduction of interfaces in LabVIEW?

Certified LabVIEW Architect
Message 9 of 12
(6,799 Views)

Does G# update in VIPM?

0 Kudos
Message 10 of 12
(6,796 Views)