Consultor Eletrônico



Kbase P113476: PRODSP() does not receive the function name in 10.1A.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   4/27/2009
Status: Verified

SYMPTOM(s):

Getting PRODSP: Unknown HLC function when using a customized HLC executable.

PRODSP() does not receive the function name.

PRODSP: Unknown HLC function.

The "Call Statement Failed" error appears when calling the function

Sample code that generates the issue:

define new shared var PID as integer no-undo.
CALL GETPID "PID".
message "pid" PID.

First parameter pfunnam of PRODSP does not point to a string.

FACT(s) (Environment):

Used to work in OpenEdge 10.0B.
OpenEdge 10.1A
Solaris

CAUSE:

Bug# OE00126742

CAUSE:

The first parameter of PRODSP() does not receive a pointer to the function name, but rather a pointer to the pointer to the function name. This is *not* the intended behavior.

FIX:

Upgrade to OpenEdge 10.1A01 or later.

If upgrading is not an option, the workaround is to take the function name from the third parameter. For example, you should declare:

int
PRODSP(pfunnam, argc, argv)
char *pfunnam; /* Name of function to call, now invalid. */
int argc;
char *argv[];
{
pfunnam = argv[0]; /* Add this to work around the problem. */

/* Code */

}