Hello
In PB2021 I'm getting this strange error when I open or close an object inherited from nonvisual:
---------------------------
PowerBuilder application execution error (R0021)
---------------------------
Application terminated.
Error: Bad runtime function reference at line 3 in create event of object pfc_n_base.
---------------------------
OK
---------------------------
It starts happening randomly and the solution is a full rebuild of the target. It helps for next few hours and then it starts again. Sometimes it helps just open and close pfc_n_base. Pfc_n_base is just an empty object. I see nothing suspicious here. Therefore I thing pfc_n_base is just a victim. My guess is there's another broken object in my project which makes this message. Did you meet this strange behavior? Do you have an idea how to investigate it?
What I tried:
Rebuild
Optimise every library
Migrate all libraries
rebuild it again
Here's pfc_n_base code:
forward
global type pfc_n_base from nonvisualobject
end type
end forward
global type pfc_n_base from nonvisualobject
end type
global pfc_n_base pfc_n_base
type variables
Public:
constant integer SUCCESS = 1
constant integer FAILURE = -1
constant integer NO_ACTION = 0
constant integer CONTINUE_ACTION = 1
constant integer PREVENT_ACTION = 0
end variables
forward prototypes
protected function integer of_messagebox (string as_id, string as_title, string as_text, icon ae_icon, button ae_button, integer ai_default)
end prototypes
protected function integer of_messagebox (string as_id, string as_title, string as_text, icon ae_icon, button ae_button, integer ai_default);Return MessageBox(as_title, as_text, ae_icon, ae_button, ai_default)
end function
on pfc_n_base.create
call super::create
TriggerEvent( this, "constructor" )
end on
on pfc_n_base.destroy
TriggerEvent( this, "destructor" )
call super::destroy
end on
If the docs you quoted said instead "When you pass a non-autoinstantiated object by value,..." and differentiated the behavior for AI'd objects, would that be sufficient?
"If the docs you quoted said instead "When you pass a non-autoinstantiated object by value,..." and differentiated the behavior for AI'd objects, would that be sufficient? "
- It would be better than nothing.
- I think the best would be a table with
columns:
value
reference
readonly
rows:
simple datatype (integer, string etc.)
structure
object (non-AI)
object (AI)
Values:
value (copied)
pointer copied
pointer referenced