139 if (!package->isInternal())
142 package->makeInternal();
215 package = new LibraryPackage(name);
219 if (!package->load())
275 return package->resolveMethod(methodName);
302 const char *functionName =
function->getStringData();
390 return package->resolveRoutine(
function);
431 const char *functionName =
function->getStringData();
447 function =
function->upper();
472 package->loadPackage();
532 name = name->
upper();
571 name = name->
upper();
604 name = name->
upper();
661 name = name->
upper();
668 function->call(activity, name, arguments, argcount, named_argcount, result);
677 function->call(activity, name, arguments, argcount, named_argcount, result);
720 RoutineClass *
package = checkRequiresCache(shortName, result);
726 unsigned short macroPosition;
750 package = checkRequiresCache(resolvedName, result);
757 return getRequiresFile(activity, resolvedName, securityManager, result);
938 return package->resolveMethodEntry(name);
959 return package->resolveRoutineEntry(name);
1002 return package->resolveRegisteredRoutineEntry(name);
void reportException(wholenumber_t error)
RexxArray * new_array(size_t s)
RexxDirectory * new_directory()
size_t(RexxEntry * PREGISTEREDROUTINE)(const char *, size_t, PCONSTRXSTRING, const char *, PRXSTRING)
uint16_t *(RexxEntry * PNATIVEMETHOD)(RexxMethodContext *, ValueDescriptor *)
uint16_t *(RexxEntry * PNATIVEROUTINE)(RexxCallContext *, ValueDescriptor *)
#define Error_Execution_library
#define Error_Execution_library_method
#define Error_Execution_library_routine
int REXXENTRY RexxResolveRoutine(const char *, REXXPFN *)
#define memory_mark(oref)
#define memory_mark_general(oref)
RoutineClass * resolveRoutine(RexxString *name)
RexxNativeMethod * resolveMethod(RexxString *name)
@ IMAGE_REGISTERED_ROUTINES
static RexxObject * dropRegisteredRoutine(RexxString *name)
static RexxDirectory * imagePackageRoutines
static RexxDirectory * registeredRoutines
static RoutineClass * resolveRoutine(RexxString *function, RexxString *packageName, RexxString *procedure)
static PNATIVEROUTINE resolveRoutineEntry(RexxString *package, RexxString *name)
static RoutineClass * getMacroSpaceRequires(RexxActivity *activity, RexxString *name, ProtectedObject &result, RexxObject *securityManager)
static void liveGeneral(int reason)
static bool callNativeRoutine(RexxActivity *activity, RexxString *name, RexxObject **arguments, size_t argcount, size_t named_argcount, ProtectedObject &result)
static void live(size_t liveMark)
static RexxDirectory * imageLoadedRequires
static RexxArray * getImageData()
static RexxDirectory * packageRoutines
static void addPackageRoutine(RexxString *name, RoutineClass *func)
static RoutineClass * loadRequires(RexxActivity *activity, RexxString *shortName, RexxString *resolvedName, ProtectedObject &result)
static RexxObject * queryRegisteredRoutine(RexxString *name)
static RexxPackageEntry * rexxPackage
static PREGISTEREDROUTINE resolveRegisteredRoutineEntry(RexxString *package, RexxString *name)
static RexxNativeMethod * loadMethod(RexxString *packageName, RexxString *methodName)
static RexxDirectory * imagePackages
static PNATIVEMETHOD resolveMethodEntry(RexxString *package, RexxString *name)
static LibraryPackage * loadLibrary(RexxString *name)
static RexxDirectory * loadedRequires
static RexxDirectory * packages
static RoutineClass * checkRequiresCache(RexxString *name, ProtectedObject &result)
static bool registerPackage(RexxString *name, RexxPackageEntry *p)
static RexxDirectory * imageRegisteredRoutines
static LibraryPackage * getLibrary(RexxString *name)
static RexxNativeMethod * resolveMethod(RexxString *packageName, RexxString *methodName)
static void loadInternalPackage(RexxString *name, RexxPackageEntry *p)
static RoutineClass * getLoadedRoutine(RexxString *function)
static RoutineClass * getRequiresFile(RexxActivity *activity, RexxString *name, RexxObject *securityManager, ProtectedObject &result)
static RexxObject * addRegisteredRoutine(RexxString *name, RexxString *module, RexxString *proc)
static RoutineClass * loadRoutine(RexxString *packageName, RexxString *function)
static RoutineClass * createRegisteredRoutine(RexxString *function)
static RoutineClass * getMacroCode(RexxString *macroName)
SecurityManager * getEffectiveSecurityManager()
bool checkRequires(RexxString *n)
void put(RexxObject *eref, size_t pos)
RexxObject * get(size_t pos)
RexxObject * at(RexxString *)
RexxObject * put(RexxObject *, RexxString *)
RexxObject * remove(RexxString *)
bool available(HashLink pos)
HashLink next(HashLink pos)
virtual RexxObject * get(RexxObject *key)
const char * getStringData()
RexxObject * setSecurityManager(RexxObject *)
static RoutineClass * fromFile(RexxString *filename)
RexxString * checkRequiresAccess(RexxString *name, RexxObject *&securityManager)
RexxReturnCode REXXENTRY RexxDeregisterFunction(CONSTANT_STRING)
size_t REXXENTRY RexxRoutineHandler(CONSTANT_STRING, size_t, PCONSTRXSTRING, CONSTANT_STRING, PRXSTRING)
RexxReturnCode REXXENTRY RexxQueryFunction(CONSTANT_STRING)
RexxReturnCode REXXENTRY RexxRegisterFunctionDll(CONSTANT_STRING, CONSTANT_STRING, CONSTANT_STRING)
RexxReturnCode REXXENTRY RexxQueryMacro(CONSTANT_STRING, unsigned short *)
#define RXMACRO_SEARCH_BEFORE