Lifecycle of instance of Blueprint

I just wondering how to manage object lifecycle. For example:

  1. I have some function inside GameInstance.

  2. In this function I’ve local variable A. It’s reference to some custom BP class.

  3. not I create new instance of BP class by call to “construct” node. As an owner I set GameInstance (self)

when this created object will be destroyed?

a) After losing last reference to it ?

b) I’ve to manualy call destroy or something similar?

c) when GameInstance is destroyed, and I can’t destroy dynamicly created instance earlier.