From 19cb04ede74ac6340e1a945d36da7000fee2da5c Mon Sep 17 00:00:00 2001 From: Nicolas Georges Date: Thu, 3 Jan 2013 00:09:56 +0100 Subject: [PATCH 1/7] - add Call_Dynamic to choose function name dynamically - add Debug105 project configuration - add helpers and docs in pbvm.h Signed-off-by: Nicolas Georges --- call_dynamic.cpp | 40 +++++++++++++++ fastfuncs.def | 1 + fastfuncs.sln | 3 ++ fastfuncs.vcproj | 91 ++++++++++++++++++++++++++++++++++- fastfuncs100/call_dynamic.srf | 8 +++ fastfuncs105/call_dynamic.srf | 8 +++ fastfuncs110/call_dynamic.srf | 8 +++ fastfuncs115/call_dynamic.srf | 8 +++ fastfuncs120/call_dynamic.srf | 8 +++ fastfuncs125/call_dynamic.srf | 8 +++ libs/pbvm100.def | 3 +- libs/pbvm105.def | 3 +- libs/pbvm110.def | 3 +- libs/pbvm115.def | 3 +- libs/pbvm120.def | 3 +- libs/pbvm125.def | 3 +- pbvm.h | 17 ++++++- 17 files changed, 209 insertions(+), 9 deletions(-) create mode 100644 call_dynamic.cpp create mode 100644 fastfuncs100/call_dynamic.srf create mode 100644 fastfuncs105/call_dynamic.srf create mode 100644 fastfuncs110/call_dynamic.srf create mode 100644 fastfuncs115/call_dynamic.srf create mode 100644 fastfuncs120/call_dynamic.srf create mode 100644 fastfuncs125/call_dynamic.srf diff --git a/call_dynamic.cpp b/call_dynamic.cpp new file mode 100644 index 0000000..7c115a1 --- /dev/null +++ b/call_dynamic.cpp @@ -0,0 +1,40 @@ +#include "pbvm.h" + +// any Call_Dynamic( powerobject apow, "function_name", ... / * arguments * / ) +// With this function we can dynamically choose the name of the function to call. + +DWORD __declspec(dllexport) __stdcall Call_Dynamic (vm_state *vm, DWORD arg_count){ + value ret; + LONG _Result; + value * arguments = GET_EVALEDARGLIST( vm ); + pb_object * objInst = (pb_object*) arguments[0].value; + //TODO : check for valid instance of objInst + wchar_t* method = (wchar_t*)arguments[1].value; + DWORD *vmptr = (DWORD*)vm; + vmptr[ 0x0204 / 4 ] = arg_count; + vmptr[ 0x015c / 4 ] = 0; + vmptr[ 0x0158 / 4 ] = 0; + vmptr[ 0x0154 / 4 ] = (DWORD)&arguments[2];//skip first and second args + _Result = ob_invoke_dynamic ( + (value*)objInst, + NULL, + 0 ,//FUNCTION + method, + arg_count - 2, + (void*)&arguments[2], + &ret ); + //check for exception + if(GET_THROWNEXCEPTION(vm)){ + DWORD unk_struct_ptr = vmptr[ 0x0160 ]; + *((WORD*)(unk_struct_ptr + 6)) = 8; + WORD* unk_struct_mbr_ptr = (WORD*)(unk_struct_ptr + 4); + *unk_struct_mbr_ptr &= 0x0FFFE; + *unk_struct_mbr_ptr |= 1; + } + ot_set_return_val(vm, &ret); + return 1; +} + +//TODO: +//any Call_Dynamic_Event( powerobject apow, "event_name", ... / * arguments * / ) +//any Call_Dynamic_Transpose( powerobject apow, "method", any args[] ) : so that arguments can be pushed dynamically in powerscript. diff --git a/fastfuncs.def b/fastfuncs.def index 4738edb..e2aad86 100644 --- a/fastfuncs.def +++ b/fastfuncs.def @@ -31,3 +31,4 @@ Orca_Destroy Orca_Import Orca_Regenerate Orca_Rebuild +Call_Dynamic \ No newline at end of file diff --git a/fastfuncs.sln b/fastfuncs.sln index a22fd97..dfd4e43 100644 --- a/fastfuncs.sln +++ b/fastfuncs.sln @@ -6,6 +6,7 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 + Debug105|Win32 = Debug105|Win32 Release100|Win32 = Release100|Win32 Release105|Win32 = Release105|Win32 Release110|Win32 = Release110|Win32 @@ -16,6 +17,8 @@ Global GlobalSection(ProjectConfigurationPlatforms) = postSolution {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Debug|Win32.ActiveCfg = Debug|Win32 {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Debug|Win32.Build.0 = Debug|Win32 + {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Debug105|Win32.ActiveCfg = Debug105|Win32 + {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Debug105|Win32.Build.0 = Debug105|Win32 {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release100|Win32.ActiveCfg = Release100|Win32 {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release100|Win32.Build.0 = Release100|Win32 {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release105|Win32.ActiveCfg = Release105|Win32 diff --git a/fastfuncs.vcproj b/fastfuncs.vcproj index 60232c0..8263c89 100644 --- a/fastfuncs.vcproj +++ b/fastfuncs.vcproj @@ -1,7 +1,7 @@ + + + + + + + + + + + + + + + + + + + @@ -595,6 +671,10 @@ RelativePath=".\blob_funcs.cpp" > + + @@ -659,6 +739,15 @@ CompileAsManaged="0" /> + + + Date: Fri, 4 Jan 2013 00:55:14 +0100 Subject: [PATCH 2/7] try to detect subroutine/function --- call_dynamic.cpp | 8 +++++++- pbvm.h | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/call_dynamic.cpp b/call_dynamic.cpp index 7c115a1..d64a19d 100644 --- a/call_dynamic.cpp +++ b/call_dynamic.cpp @@ -31,7 +31,13 @@ DWORD __declspec(dllexport) __stdcall Call_Dynamic (vm_state *vm, DWORD arg_coun *unk_struct_mbr_ptr &= 0x0FFFE; *unk_struct_mbr_ptr |= 1; } - ot_set_return_val(vm, &ret); + value * called_return_value = GET_CALLEDRETURNVALUE(vm); + if(ret.flags == 0x1d01){ //try to know if "ret" is valid or not + ot_no_return_val(vm); + } + else { + ot_set_return_val(vm, &ret); + } return 1; } diff --git a/pbvm.h b/pbvm.h index 5f8a0a4..fca8c0b 100644 --- a/pbvm.h +++ b/pbvm.h @@ -17,6 +17,7 @@ typedef struct { // 0x0154 stack pointer / evaled_arglist // 0x0158 something else stack related? // 0x0160 related to exception rethrow/cleaned-up ? + // 0x0164 VALUE : _CALLED_RETURN_VALUE // 0x016c routine level // 0x0200 local variables // 0x0204 something like available values slots in stack pointer ? @@ -183,13 +184,14 @@ wchar_t * __stdcall ob_event_module_name(vm_state *, group_data *, class_data *, bool __stdcall shlist_traversal(void *, void *, shlist_callback); int __stdcall rtRoutineExec(vm_state *, int, pb_class *, int, int, value*, int, int, int, int); LONG __stdcall ob_invoke_dynamic ( value *, int , int, wchar_t*, int, void*, value* ); +bool __stdcall ot_check_any_match_type ( vm_state *, value *, int type); #define GET_HEAP(x) (*(DWORD *)(((char *)x) + 0x11e)) #define GET_STACKLIST(x) (void*)(*(DWORD *)(((char *)x) + 218)) #define GET_THROW(x) (((pb_class**)x)[147]) #define GET_EVALEDARGLIST(x) (value*)(*(DWORD *)(((char *)x) + 0x0154)) #define GET_THROWNEXCEPTION(x) (*(DWORD *)(((char *)x) + 0x024c)) - +#define GET_CALLEDRETURNVALUE(x) (value*)((DWORD *)(((char *)x) + 0x0164)) value * get_lvalue(vm_state *vm, lvalue_ref *value_ref); void Throw_Exception(vm_state *vm, wchar_t *text, ...); From 7ac1c12acb3778597266f44c4cb78fe16fcb6373 Mon Sep 17 00:00:00 2001 From: Nicolas Georges Date: Mon, 28 Oct 2013 21:26:21 +0100 Subject: [PATCH 3/7] - provide current line number in stack trace. - add pbstg_fee and ob_get_current_stack_location to *.def files --- libs/pbshr100.def | 1 + libs/pbshr105.def | 1 + libs/pbshr110.def | 1 + libs/pbshr115.def | 1 + libs/pbshr120.def | 1 + libs/pbshr125.def | 1 + libs/pbvm100.def | 1 + libs/pbvm105.def | 1 + libs/pbvm110.def | 1 + libs/pbvm115.def | 1 + libs/pbvm120.def | 1 + libs/pbvm125.def | 1 + pbvm.h | 13 ++++++++++++- stack_trace.cpp | 9 +++++++-- 14 files changed, 31 insertions(+), 3 deletions(-) diff --git a/libs/pbshr100.def b/libs/pbshr100.def index 24247f0..1a6c351 100644 --- a/libs/pbshr100.def +++ b/libs/pbshr100.def @@ -4,3 +4,4 @@ EXPORTS ?pbstg_alc@@YGPAXPAUvm_state@@HH@Z @5 ?pbstg_sz@@YGHPAUvm_state@@PAX@Z @14 ?pbstg_realc@@YGPAXPAUvm_state@@PAXHH@Z @9 +?pbstg_fee@@YGXPAUvm_state@@PAX@Z @6 \ No newline at end of file diff --git a/libs/pbshr105.def b/libs/pbshr105.def index 5f91c91..9860bae 100644 --- a/libs/pbshr105.def +++ b/libs/pbshr105.def @@ -4,3 +4,4 @@ EXPORTS ?pbstg_alc@@YGPAXPAUvm_state@@HH@Z @5 ?pbstg_sz@@YGHPAUvm_state@@PAX@Z @14 ?pbstg_realc@@YGPAXPAUvm_state@@PAXHH@Z @9 +?pbstg_fee@@YGXPAUvm_state@@PAX@Z @6 \ No newline at end of file diff --git a/libs/pbshr110.def b/libs/pbshr110.def index ac8bef9..36038a7 100644 --- a/libs/pbshr110.def +++ b/libs/pbshr110.def @@ -4,3 +4,4 @@ EXPORTS ?pbstg_alc@@YGPAXPAUvm_state@@HH@Z @5 ?pbstg_sz@@YGHPAUvm_state@@PAX@Z @14 ?pbstg_realc@@YGPAXPAUvm_state@@PAXHH@Z @9 +?pbstg_fee@@YGXPAUvm_state@@PAX@Z @6 diff --git a/libs/pbshr115.def b/libs/pbshr115.def index 5c255a2..eeecf40 100644 --- a/libs/pbshr115.def +++ b/libs/pbshr115.def @@ -4,3 +4,4 @@ EXPORTS ?pbstg_alc@@YGPAXPAUvm_state@@HH@Z @5 ?pbstg_sz@@YGHPAUvm_state@@PAX@Z @14 ?pbstg_realc@@YGPAXPAUvm_state@@PAXHH@Z @9 +?pbstg_fee@@YGXPAUvm_state@@PAX@Z @6 \ No newline at end of file diff --git a/libs/pbshr120.def b/libs/pbshr120.def index 848d448..9444a5c 100644 --- a/libs/pbshr120.def +++ b/libs/pbshr120.def @@ -4,3 +4,4 @@ EXPORTS ?pbstg_alc@@YGPAXPAUvm_state@@HH@Z @5 ?pbstg_sz@@YGHPAUvm_state@@PAX@Z @14 ?pbstg_realc@@YGPAXPAUvm_state@@PAXHH@Z @9 +?pbstg_fee@@YGXPAUvm_state@@PAX@Z @6 diff --git a/libs/pbshr125.def b/libs/pbshr125.def index 9b6c81d..7187d12 100644 --- a/libs/pbshr125.def +++ b/libs/pbshr125.def @@ -4,3 +4,4 @@ EXPORTS ?pbstg_alc@@YGPAXPAUvm_state@@HH@Z @5 ?pbstg_sz@@YGHPAUvm_state@@PAX@Z @14 ?pbstg_realc@@YGPAXPAUvm_state@@PAXHH@Z @9 +?pbstg_fee@@YGXPAUvm_state@@PAX@Z @6 diff --git a/libs/pbvm100.def b/libs/pbvm100.def index dbb639a..1c0edb8 100644 --- a/libs/pbvm100.def +++ b/libs/pbvm100.def @@ -34,3 +34,4 @@ EXPORTS ?ot_get_ulongarg@@YGHPAUvm_state@@PAK@Z @1059 ?rtRoutineExec@@YGHPAUvm_state@@HPAUpb_class@@HHPAUvalue@@HHHH@Z @1478 ?ob_invoke_dynamic@@YGJPAUvalue@@HHPA_WHPAX0@Z @1301 +?ob_get_current_stack_location@@YGPAUcurrent_stack_info@@PAUvm_state@@@Z @1606 \ No newline at end of file diff --git a/libs/pbvm105.def b/libs/pbvm105.def index abe6178..cb24ae7 100644 --- a/libs/pbvm105.def +++ b/libs/pbvm105.def @@ -34,3 +34,4 @@ EXPORTS ?ot_get_ulongarg@@YGHPAUvm_state@@PAK@Z @1059 ?rtRoutineExec@@YGHPAUvm_state@@HPAUpb_class@@HHPAUvalue@@HHHH@Z @1478 ?ob_invoke_dynamic@@YGJPAUvalue@@HHPA_WHPAX0@Z @1301 +?ob_get_current_stack_location@@YGPAUcurrent_stack_info@@PAUvm_state@@@Z @1606 \ No newline at end of file diff --git a/libs/pbvm110.def b/libs/pbvm110.def index 696e6cd..9d63a6c 100644 --- a/libs/pbvm110.def +++ b/libs/pbvm110.def @@ -34,3 +34,4 @@ EXPORTS ?ot_get_ulongarg@@YGHPAUvm_state@@PAK@Z @1059 ?rtRoutineExec@@YGHPAUvm_state@@HPAUpb_class@@HHPAUvalue@@HHHH@Z @1478 ?ob_invoke_dynamic@@YGJPAUvalue@@HHPA_WHPAX0@Z @1301 +?ob_get_current_stack_location@@YGPAUcurrent_stack_info@@PAUvm_state@@@Z @1606 diff --git a/libs/pbvm115.def b/libs/pbvm115.def index d65fe99..e840b2e 100644 --- a/libs/pbvm115.def +++ b/libs/pbvm115.def @@ -34,3 +34,4 @@ EXPORTS ?ot_get_ulongarg@@YGHPAUvm_state@@PAK@Z @1059 ?rtRoutineExec@@YGHPAUvm_state@@HPAUpb_class@@HHPAUvalue@@HHHH@Z @1478 ?ob_invoke_dynamic@@YGJPAUvalue@@HHPA_WHPAX0@Z @1301 +?ob_get_current_stack_location@@YGPAUcurrent_stack_info@@PAUvm_state@@@Z @1646 \ No newline at end of file diff --git a/libs/pbvm120.def b/libs/pbvm120.def index e4af53f..9a11fec 100644 --- a/libs/pbvm120.def +++ b/libs/pbvm120.def @@ -34,3 +34,4 @@ EXPORTS ?ot_get_ulongarg@@YGHPAUvm_state@@PAK@Z @1059 ?rtRoutineExec@@YGHPAUvm_state@@HPAUpb_class@@HHPAUvalue@@HHHH@Z @1478 ?ob_invoke_dynamic@@YGJPAUvalue@@HHPA_WHPAX0@Z @1301 +?ob_get_current_stack_location@@YGPAUcurrent_stack_info@@PAUvm_state@@@Z @1606 diff --git a/libs/pbvm125.def b/libs/pbvm125.def index 1e02c09..06d939e 100644 --- a/libs/pbvm125.def +++ b/libs/pbvm125.def @@ -34,3 +34,4 @@ EXPORTS ?ot_get_ulongarg@@YGHPAUvm_state@@PAK@Z @1059 ?rtRoutineExec@@YGHPAUvm_state@@HPAUpb_class@@HHPAUvalue@@HHHH@Z @1478 ?ob_invoke_dynamic@@YGJPAUvalue@@HHPA_WHPAX0@Z @1301 +?ob_get_current_stack_location@@YGPAUcurrent_stack_info@@PAUvm_state@@@Z @1606 diff --git a/pbvm.h b/pbvm.h index fca8c0b..afd09c9 100644 --- a/pbvm.h +++ b/pbvm.h @@ -12,6 +12,7 @@ typedef struct { // 0x0004 *this // 0X000c dbgthis // 0X00c6 curr obj group (used for shared variable and scope resolution for dynamic call) + // 0X00d2 current object (_This) pb_object* // 0x011e heap ptr // 0x015c stack position // 0x0154 stack pointer / evaled_arglist @@ -127,10 +128,18 @@ typedef struct{ short f28; }stack_info; +typedef struct{ + long f1; + short f2; + long current_line_no; + //and other bytes up to a length of 0x22h bytes (sizeof allocated struct) +}current_stack_info; + typedef struct{ // don't need to know what's actually in this struct... }group_data; typedef struct{ // don't need to know what's actually in this struct... + //group_data* groupe }class_data; typedef struct { @@ -185,7 +194,9 @@ bool __stdcall shlist_traversal(void *, void *, shlist_callback); int __stdcall rtRoutineExec(vm_state *, int, pb_class *, int, int, value*, int, int, int, int); LONG __stdcall ob_invoke_dynamic ( value *, int , int, wchar_t*, int, void*, value* ); bool __stdcall ot_check_any_match_type ( vm_state *, value *, int type); - +current_stack_info* __stdcall ob_get_current_stack_location(vm_state *); +void __stdcall pbstg_fee(vm_state*, void*); +// nice typo ;-) -----^ #define GET_HEAP(x) (*(DWORD *)(((char *)x) + 0x11e)) #define GET_STACKLIST(x) (void*)(*(DWORD *)(((char *)x) + 218)) #define GET_THROW(x) (((pb_class**)x)[147]) diff --git a/stack_trace.cpp b/stack_trace.cpp index f12238a..e9caaaf 100644 --- a/stack_trace.cpp +++ b/stack_trace.cpp @@ -79,7 +79,9 @@ DWORD __declspec(dllexport) __stdcall Stack_Trace (vm_state *vm, DWORD arg_count ret.type=7; ret.flags=0x0500; - stack_build_string(&state, -1); + current_stack_info* csti = ob_get_current_stack_location( vm ); + stack_build_string(&state, csti->current_line_no ); + pbstg_fee( vm, (void*) csti ); ot_assign_ref_array(vm, lv_values->ptr, state.values, 0, 0); ot_set_return_val(vm, &ret); @@ -99,7 +101,10 @@ int WINAPI filter(LPEXCEPTION_POINTERS ptrs){ void *stack_list = GET_STACKLIST(last_vm); shlist_traversal(stack_list, &state, callback); - stack_build_string(&state, -1); + current_stack_info* csti = ob_get_current_stack_location( last_vm ); + stack_build_string(&state, csti->current_line_no); + pbstg_fee( last_vm, (void*) csti ); + MessageBoxW(NULL, buffer, L"Unexpected GPF", MB_OK); } return EXCEPTION_EXECUTE_HANDLER; From ac62f0357114fa83239314d09e83daa32bd92b09 Mon Sep 17 00:00:00 2001 From: Nicolas GEORGES Date: Sat, 16 Sep 2017 20:35:05 +0100 Subject: [PATCH 4/7] POC Call_Dynamic implementation --- call_dynamic.cpp | 92 +++++++++++++++++------------------ fastfuncs100/call_dynamic.srf | 16 +++--- fastfuncs105/call_dynamic.srf | 16 +++--- fastfuncs110/call_dynamic.srf | 16 +++--- fastfuncs115/call_dynamic.srf | 16 +++--- fastfuncs120/call_dynamic.srf | 16 +++--- fastfuncs125/call_dynamic.srf | 16 +++--- 7 files changed, 94 insertions(+), 94 deletions(-) diff --git a/call_dynamic.cpp b/call_dynamic.cpp index d64a19d..565db21 100644 --- a/call_dynamic.cpp +++ b/call_dynamic.cpp @@ -1,46 +1,46 @@ -#include "pbvm.h" - -// any Call_Dynamic( powerobject apow, "function_name", ... / * arguments * / ) -// With this function we can dynamically choose the name of the function to call. - -DWORD __declspec(dllexport) __stdcall Call_Dynamic (vm_state *vm, DWORD arg_count){ - value ret; - LONG _Result; - value * arguments = GET_EVALEDARGLIST( vm ); - pb_object * objInst = (pb_object*) arguments[0].value; - //TODO : check for valid instance of objInst - wchar_t* method = (wchar_t*)arguments[1].value; - DWORD *vmptr = (DWORD*)vm; - vmptr[ 0x0204 / 4 ] = arg_count; - vmptr[ 0x015c / 4 ] = 0; - vmptr[ 0x0158 / 4 ] = 0; - vmptr[ 0x0154 / 4 ] = (DWORD)&arguments[2];//skip first and second args - _Result = ob_invoke_dynamic ( - (value*)objInst, - NULL, - 0 ,//FUNCTION - method, - arg_count - 2, - (void*)&arguments[2], - &ret ); - //check for exception - if(GET_THROWNEXCEPTION(vm)){ - DWORD unk_struct_ptr = vmptr[ 0x0160 ]; - *((WORD*)(unk_struct_ptr + 6)) = 8; - WORD* unk_struct_mbr_ptr = (WORD*)(unk_struct_ptr + 4); - *unk_struct_mbr_ptr &= 0x0FFFE; - *unk_struct_mbr_ptr |= 1; - } - value * called_return_value = GET_CALLEDRETURNVALUE(vm); - if(ret.flags == 0x1d01){ //try to know if "ret" is valid or not - ot_no_return_val(vm); - } - else { - ot_set_return_val(vm, &ret); - } - return 1; -} - -//TODO: -//any Call_Dynamic_Event( powerobject apow, "event_name", ... / * arguments * / ) -//any Call_Dynamic_Transpose( powerobject apow, "method", any args[] ) : so that arguments can be pushed dynamically in powerscript. +#include "pbvm.h" + +// any Call_Dynamic( powerobject apow, "function_name", ... / * arguments * / ) +// With this function we can dynamically choose the name of the function to call. + +DWORD __declspec(dllexport) __stdcall Call_Dynamic (vm_state *vm, DWORD arg_count){ + value ret; + LONG _Result; + value * arguments = GET_EVALEDARGLIST( vm ); + pb_object * objInst = (pb_object*) arguments[0].value; + //TODO : check for valid instance of objInst + wchar_t* method = (wchar_t*)arguments[1].value; + DWORD *vmptr = (DWORD*)vm; + vmptr[ 0x0204 / 4 ] = arg_count; + vmptr[ 0x015c / 4 ] = 0; + vmptr[ 0x0158 / 4 ] = 0; + vmptr[ 0x0154 / 4 ] = (DWORD)&arguments[2];//skip first and second args + _Result = ob_invoke_dynamic ( + (value*)objInst, + NULL, + 0 ,//FUNCTION + method, + arg_count - 2, + (void*)&arguments[2], + &ret ); + //check for exception + if(GET_THROWNEXCEPTION(vm)){ + DWORD unk_struct_ptr = vmptr[ 0x0160 ]; + *((WORD*)(unk_struct_ptr + 6)) = 8; + WORD* unk_struct_mbr_ptr = (WORD*)(unk_struct_ptr + 4); + *unk_struct_mbr_ptr &= 0x0FFFE; + *unk_struct_mbr_ptr |= 1; + } + value * called_return_value = GET_CALLEDRETURNVALUE(vm); + if(ret.flags == 0x1d01){ //try to know if "ret" is valid or not + ot_no_return_val(vm); + } + else { + ot_set_return_val(vm, &ret); + } + return 1; +} + +//TODO: +//any Call_Dynamic_Event( powerobject apow, "event_name", ... / * arguments * / ) +//any Call_Dynamic_Transpose( powerobject apow, "method", any args[] ) : so that arguments can be pushed dynamically in powerscript. diff --git a/fastfuncs100/call_dynamic.srf b/fastfuncs100/call_dynamic.srf index 2d504d0..335f021 100644 --- a/fastfuncs100/call_dynamic.srf +++ b/fastfuncs100/call_dynamic.srf @@ -1,8 +1,8 @@ -$PBExportHeader$call_dynamic.srf -global type call_dynamic from function_object -end type - -type prototypes -global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs100.dll" alias for "Call_Dynamic" -end prototypes - +$PBExportHeader$call_dynamic.srf +global type call_dynamic from function_object +end type + +type prototypes +global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs100.dll" alias for "Call_Dynamic" +end prototypes + diff --git a/fastfuncs105/call_dynamic.srf b/fastfuncs105/call_dynamic.srf index fb4da1c..df370a9 100644 --- a/fastfuncs105/call_dynamic.srf +++ b/fastfuncs105/call_dynamic.srf @@ -1,8 +1,8 @@ -$PBExportHeader$call_dynamic.srf -global type call_dynamic from function_object -end type - -type prototypes -global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs105.dll" alias for "Call_Dynamic" -end prototypes - +$PBExportHeader$call_dynamic.srf +global type call_dynamic from function_object +end type + +type prototypes +global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs105.dll" alias for "Call_Dynamic" +end prototypes + diff --git a/fastfuncs110/call_dynamic.srf b/fastfuncs110/call_dynamic.srf index 8e82c9a..6022b63 100644 --- a/fastfuncs110/call_dynamic.srf +++ b/fastfuncs110/call_dynamic.srf @@ -1,8 +1,8 @@ -$PBExportHeader$call_dynamic.srf -global type call_dynamic from function_object -end type - -type prototypes -global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs110.dll" alias for "Call_Dynamic" -end prototypes - +$PBExportHeader$call_dynamic.srf +global type call_dynamic from function_object +end type + +type prototypes +global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs110.dll" alias for "Call_Dynamic" +end prototypes + diff --git a/fastfuncs115/call_dynamic.srf b/fastfuncs115/call_dynamic.srf index 709882f..7da9c90 100644 --- a/fastfuncs115/call_dynamic.srf +++ b/fastfuncs115/call_dynamic.srf @@ -1,8 +1,8 @@ -$PBExportHeader$call_dynamic.srf -global type call_dynamic from function_object -end type - -type prototypes -global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs115.dll" alias for "Call_Dynamic" -end prototypes - +$PBExportHeader$call_dynamic.srf +global type call_dynamic from function_object +end type + +type prototypes +global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs115.dll" alias for "Call_Dynamic" +end prototypes + diff --git a/fastfuncs120/call_dynamic.srf b/fastfuncs120/call_dynamic.srf index c20903f..5b39859 100644 --- a/fastfuncs120/call_dynamic.srf +++ b/fastfuncs120/call_dynamic.srf @@ -1,8 +1,8 @@ -$PBExportHeader$call_dynamic.srf -global type call_dynamic from function_object -end type - -type prototypes -global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs120.dll" alias for "Call_Dynamic" -end prototypes - +$PBExportHeader$call_dynamic.srf +global type call_dynamic from function_object +end type + +type prototypes +global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs120.dll" alias for "Call_Dynamic" +end prototypes + diff --git a/fastfuncs125/call_dynamic.srf b/fastfuncs125/call_dynamic.srf index ee192bc..87f138b 100644 --- a/fastfuncs125/call_dynamic.srf +++ b/fastfuncs125/call_dynamic.srf @@ -1,8 +1,8 @@ -$PBExportHeader$call_dynamic.srf -global type call_dynamic from function_object -end type - -type prototypes -global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs125.dll" alias for "Call_Dynamic" -end prototypes - +$PBExportHeader$call_dynamic.srf +global type call_dynamic from function_object +end type + +type prototypes +global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs125.dll" alias for "Call_Dynamic" +end prototypes + From 1779582e8ab05fd659e739ad4610954033da66be Mon Sep 17 00:00:00 2001 From: David Atencia Date: Fri, 12 Aug 2016 11:28:13 +0200 Subject: [PATCH 5/7] Avoid duplicate function names on stack_trace routine. --- stack_trace.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/stack_trace.cpp b/stack_trace.cpp index e9caaaf..eae486e 100644 --- a/stack_trace.cpp +++ b/stack_trace.cpp @@ -32,7 +32,15 @@ void stack_build_string(callback_state *state, short line_no){ if (state->index==0 || state->group_name==NULL) return; - wnsprintf(temp, 256, L"%s.%s.%s Line: %d",state->group_name, state->class_name, state->routine_name, line_no); + if (wcscmp(state->group_name, state->class_name) == 0) { + if (wcscmp(state->group_name, state->routine_name) == 0) { + wnsprintf(temp, 256, L"%s Line: %d", state->routine_name, line_no); + } else { + wnsprintf(temp, 256, L"%s.%s Line: %d", state->group_name, state->routine_name, line_no); + } + } else { + wnsprintf(temp, 256, L"%s.%s.%s Line: %d", state->group_name, state->class_name, state->routine_name, line_no); + } if (state->values != NULL){ value *val=ot_array_index(state->vm, state->values, state->index -1); set_string(state->vm, temp, val); From a1fc019130e3debe6b73f13bf3b44ae1ab4371cf Mon Sep 17 00:00:00 2001 From: Nicolas GEORGES Date: Sun, 17 Sep 2017 00:00:42 +0100 Subject: [PATCH 6/7] add PB170 target --- fastfuncs.sln | 14 ++++++++++--- fastfuncs170/append.srf | 9 ++++++++ fastfuncs170/bitwise_and.srf | 8 +++++++ fastfuncs170/bitwise_or.srf | 8 +++++++ fastfuncs170/blob_alloc.srf | 9 ++++++++ fastfuncs170/blob_extract.srf | 39 +++++++++++++++++++++++++++++++++++ fastfuncs170/blob_import.srf | 9 ++++++++ fastfuncs170/blob_mid.srf | 9 ++++++++ fastfuncs170/call_dynamic.srf | 8 +++++++ fastfuncs170/fast_pos.srf | 8 +++++++ fastfuncs170/index.srf | 23 +++++++++++++++++++++ fastfuncs170/last_pos.srf | 8 +++++++ fastfuncs170/next_tag.srf | 8 +++++++ fastfuncs170/replace_all.srf | 9 ++++++++ fastfuncs170/sort.srf | 28 +++++++++++++++++++++++++ fastfuncs170/split.srf | 8 +++++++ fastfuncs170/stack_trace.srf | 8 +++++++ fastfuncs170/token.srf | 9 ++++++++ libs/build_libs.bat | 26 ++++++++++++----------- libs/pbshr170.def | 7 +++++++ libs/pbvm170.def | 37 +++++++++++++++++++++++++++++++++ 21 files changed, 277 insertions(+), 15 deletions(-) create mode 100644 fastfuncs170/append.srf create mode 100644 fastfuncs170/bitwise_and.srf create mode 100644 fastfuncs170/bitwise_or.srf create mode 100644 fastfuncs170/blob_alloc.srf create mode 100644 fastfuncs170/blob_extract.srf create mode 100644 fastfuncs170/blob_import.srf create mode 100644 fastfuncs170/blob_mid.srf create mode 100644 fastfuncs170/call_dynamic.srf create mode 100644 fastfuncs170/fast_pos.srf create mode 100644 fastfuncs170/index.srf create mode 100644 fastfuncs170/last_pos.srf create mode 100644 fastfuncs170/next_tag.srf create mode 100644 fastfuncs170/replace_all.srf create mode 100644 fastfuncs170/sort.srf create mode 100644 fastfuncs170/split.srf create mode 100644 fastfuncs170/stack_trace.srf create mode 100644 fastfuncs170/token.srf create mode 100644 libs/pbshr170.def create mode 100644 libs/pbvm170.def diff --git a/fastfuncs.sln b/fastfuncs.sln index dfd4e43..659ce49 100644 --- a/fastfuncs.sln +++ b/fastfuncs.sln @@ -1,7 +1,9 @@  -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C++ Express 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fastfuncs", "fastfuncs.vcproj", "{49C7C013-8F72-4D66-87B4-42F44AB496B0}" +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fastfuncs", "fastfuncs.vcxproj", "{49C7C013-8F72-4D66-87B4-42F44AB496B0}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -13,6 +15,7 @@ Global Release115|Win32 = Release115|Win32 Release120|Win32 = Release120|Win32 Release125|Win32 = Release125|Win32 + Release170|Win32 = Release170|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Debug|Win32.ActiveCfg = Debug|Win32 @@ -31,8 +34,13 @@ Global {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release120|Win32.Build.0 = Release120|Win32 {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release125|Win32.ActiveCfg = Release125|Win32 {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release125|Win32.Build.0 = Release125|Win32 + {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release170|Win32.ActiveCfg = Release170|Win32 + {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release170|Win32.Build.0 = Release170|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {81143B54-D5B5-48D2-87E2-AFEE03D49068} + EndGlobalSection EndGlobal diff --git a/fastfuncs170/append.srf b/fastfuncs170/append.srf new file mode 100644 index 0000000..092ba30 --- /dev/null +++ b/fastfuncs170/append.srf @@ -0,0 +1,9 @@ +$PBExportHeader$append.srf +global type append from function_object +end type + +type prototypes +global function boolean append (ref blob ab_source, readonly string as_append, ...) system library "fastfuncs170.dll" alias for "Append" +global function boolean append (ref string as_source, readonly string as_append, ...) system library "fastfuncs170.dll" alias for "Append" +end prototypes + diff --git a/fastfuncs170/bitwise_and.srf b/fastfuncs170/bitwise_and.srf new file mode 100644 index 0000000..d2d7d93 --- /dev/null +++ b/fastfuncs170/bitwise_and.srf @@ -0,0 +1,8 @@ +$PBExportHeader$bitwise_and.srf +global type bitwise_and from function_object +end type + +type prototypes +global intrinsic function unsignedlong bitwise_and (unsignedlong x, unsignedlong y) system library "fastfuncs170.dll" alias for "Bitwise_And" +end prototypes + diff --git a/fastfuncs170/bitwise_or.srf b/fastfuncs170/bitwise_or.srf new file mode 100644 index 0000000..492ce4a --- /dev/null +++ b/fastfuncs170/bitwise_or.srf @@ -0,0 +1,8 @@ +$PBExportHeader$bitwise_or.srf +global type bitwise_or from function_object +end type + +type prototypes +global intrinsic function unsignedlong bitwise_or (unsignedlong x, unsignedlong y) system library "fastfuncs170.dll" alias for "Bitwise_Or" +end prototypes + diff --git a/fastfuncs170/blob_alloc.srf b/fastfuncs170/blob_alloc.srf new file mode 100644 index 0000000..c694cdc --- /dev/null +++ b/fastfuncs170/blob_alloc.srf @@ -0,0 +1,9 @@ +$PBExportHeader$blob_alloc.srf +global type blob_alloc from function_object +end type + +type prototypes +global function blob blob_alloc (unsignedlong length) system library "fastfuncs170.dll" alias for 'Blob_Alloc' +global function blob blob_alloc (unsignedlong length, boolean zero_memory) system library "fastfuncs170.dll" alias for 'Blob_Alloc' +end prototypes + diff --git a/fastfuncs170/blob_extract.srf b/fastfuncs170/blob_extract.srf new file mode 100644 index 0000000..a63e553 --- /dev/null +++ b/fastfuncs170/blob_extract.srf @@ -0,0 +1,39 @@ +$PBExportHeader$blob_extract.srf +global type blob_extract from function_object +end type + +type prototypes +global function boolean blob_extract (ref powerobject ai_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref boolean ai_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref real ai_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref char ai_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref integer ai_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref uint ai_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref long al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref ulong al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref string al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref longlong al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref dec al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref double al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref date al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref time al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref datetime al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref byte al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref powerobject ai_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref boolean ai_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref real ai_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref char ai_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref integer ai_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref uint ai_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref long al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref ulong al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref string al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref longlong al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref dec al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref double al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref date al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref time al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref datetime al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref byte al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Extract' +end prototypes + diff --git a/fastfuncs170/blob_import.srf b/fastfuncs170/blob_import.srf new file mode 100644 index 0000000..8d55634 --- /dev/null +++ b/fastfuncs170/blob_import.srf @@ -0,0 +1,9 @@ +$PBExportHeader$blob_import.srf +global type blob_import from function_object +end type + +type prototypes +global function boolean blob_import (readonly any aa_value, ref blob ab_data, ref long al_pos) system library "fastfuncs170.dll" alias for 'Blob_Import' +global function boolean blob_import (readonly any aa_value, ref blob ab_data) system library "fastfuncs170.dll" alias for 'Blob_Import' +end prototypes + diff --git a/fastfuncs170/blob_mid.srf b/fastfuncs170/blob_mid.srf new file mode 100644 index 0000000..46ca1d4 --- /dev/null +++ b/fastfuncs170/blob_mid.srf @@ -0,0 +1,9 @@ +$PBExportHeader$blob_mid.srf +global type blob_mid from function_object +end type + +type prototypes +global function blob blob_mid (readonly blob ab_in, unsignedlong al_start) system library "fastfuncs170.dll" alias for 'Blob_Mid' +global function blob blob_mid (readonly blob ab_in, unsignedlong al_start, unsignedlong al_len) system library "fastfuncs170.dll" alias for 'Blob_Mid' +end prototypes + diff --git a/fastfuncs170/call_dynamic.srf b/fastfuncs170/call_dynamic.srf new file mode 100644 index 0000000..88d22cc --- /dev/null +++ b/fastfuncs170/call_dynamic.srf @@ -0,0 +1,8 @@ +$PBExportHeader$call_dynamic.srf +global type call_dynamic from function_object +end type + +type prototypes +global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs170.dll" alias for "Call_Dynamic" +end prototypes + diff --git a/fastfuncs170/fast_pos.srf b/fastfuncs170/fast_pos.srf new file mode 100644 index 0000000..bdbbc3f --- /dev/null +++ b/fastfuncs170/fast_pos.srf @@ -0,0 +1,8 @@ +$PBExportHeader$fast_pos.srf +global type fast_pos from function_object +end type + +type prototypes +global function long fast_pos (readonly string as_source, readonly string as_find) system library "fastfuncs170.dll" alias for 'Fast_Pos' +end prototypes + diff --git a/fastfuncs170/index.srf b/fastfuncs170/index.srf new file mode 100644 index 0000000..4d92d5c --- /dev/null +++ b/fastfuncs170/index.srf @@ -0,0 +1,23 @@ +$PBExportHeader$index.srf +global type index from function_object +end type + +type prototypes +global function long index (readonly int as_find, readonly int as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly boolean as_find, readonly boolean as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly uint as_find, readonly uint as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly char as_find, readonly char as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly byte as_find, readonly byte as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly long as_find, readonly long as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly ulong as_find, readonly ulong as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly real as_find, readonly real as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly longlong as_find, readonly longlong as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly double as_find, readonly double as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly decimal as_find, readonly decimal as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly blob as_find, readonly blob as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly string as_find, readonly string as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly date as_find, readonly date as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly time as_find, readonly time as_array[]) system library "fastfuncs170.dll" alias for 'Index' +global function long index (readonly datetime as_find, readonly datetime as_array[]) system library "fastfuncs170.dll" alias for 'Index' +end prototypes + diff --git a/fastfuncs170/last_pos.srf b/fastfuncs170/last_pos.srf new file mode 100644 index 0000000..fee5c40 --- /dev/null +++ b/fastfuncs170/last_pos.srf @@ -0,0 +1,8 @@ +$PBExportHeader$last_pos.srf +global type last_pos from function_object +end type + +type prototypes +global function long last_pos (readonly string as_source, readonly string as_find) system library "fastfuncs170.dll" alias for 'Last_Pos' +end prototypes + diff --git a/fastfuncs170/next_tag.srf b/fastfuncs170/next_tag.srf new file mode 100644 index 0000000..cbc83a6 --- /dev/null +++ b/fastfuncs170/next_tag.srf @@ -0,0 +1,8 @@ +$PBExportHeader$next_tag.srf +global type next_tag from function_object +end type + +type prototypes +global function boolean next_tag (readonly string as_source, readonly string as_start_delim, readonly string as_end_delim, ref long al_start_pos, ref string as_tag) system library 'fastfuncs170.dll' alias for "Next_Tag" +end prototypes + diff --git a/fastfuncs170/replace_all.srf b/fastfuncs170/replace_all.srf new file mode 100644 index 0000000..11b082d --- /dev/null +++ b/fastfuncs170/replace_all.srf @@ -0,0 +1,9 @@ +$PBExportHeader$replace_all.srf +global type replace_all from function_object +end type + +type prototypes +global function string replace_all (readonly string source, readonly string find, readonly string replace) system library "fastfuncs170.dll" alias for "Replace_All" +global function string replace_all (readonly string source, readonly string find, readonly string replace, boolean insensitive) system library "fastfuncs170.dll" alias for "Replace_All" +end prototypes + diff --git a/fastfuncs170/sort.srf b/fastfuncs170/sort.srf new file mode 100644 index 0000000..914346c --- /dev/null +++ b/fastfuncs170/sort.srf @@ -0,0 +1,28 @@ +$PBExportHeader$sort.srf +global type sort from function_object +end type + +type prototypes +global function integer sort (ref string as_values[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref powerobject aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref integer aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref string aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref long aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref boolean aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref double aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref ulong aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref date aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref time aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref datetime aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref any aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref decimal aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref blob aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref uint aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref longlong aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref character aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref objhandle aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref real aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref byte aa_sort_too[]) system library 'fastfuncs170.dll' alias for "Sort" +end prototypes + diff --git a/fastfuncs170/split.srf b/fastfuncs170/split.srf new file mode 100644 index 0000000..6bb72bb --- /dev/null +++ b/fastfuncs170/split.srf @@ -0,0 +1,8 @@ +$PBExportHeader$split.srf +global type split from function_object +end type + +type prototypes +global function boolean split (readonly string as_source, readonly string as_delim, ref string as_values[]) system library 'fastfuncs170.dll' alias for "Split" +end prototypes + diff --git a/fastfuncs170/stack_trace.srf b/fastfuncs170/stack_trace.srf new file mode 100644 index 0000000..db34402 --- /dev/null +++ b/fastfuncs170/stack_trace.srf @@ -0,0 +1,8 @@ +HA$PBExportHeader$stack_trace.srf +global type stack_trace from function_object +end type + +type prototypes +global function boolean stack_trace (ref string as_call_stack[]) system library 'fastfuncs170.dll' alias for "Stack_Trace" +end prototypes + diff --git a/fastfuncs170/token.srf b/fastfuncs170/token.srf new file mode 100644 index 0000000..643cf01 --- /dev/null +++ b/fastfuncs170/token.srf @@ -0,0 +1,9 @@ +$PBExportHeader$token.srf +global type token from function_object +end type + +type prototypes +global function boolean token (readonly string as_source, readonly string as_delim, ref long al_pos, ref string as_token) system library 'fastfuncs170.dll' alias for "Token" +global function boolean token (ref string as_source, readonly string as_delim, ref string as_token) system library 'fastfuncs170.dll' alias for "Token2" +end prototypes + diff --git a/libs/build_libs.bat b/libs/build_libs.bat index 7e53983..6a890f6 100644 --- a/libs/build_libs.bat +++ b/libs/build_libs.bat @@ -1,15 +1,17 @@ set PATH=C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\;c:\Program Files (x86)\Microsoft Visual Studio 9.0\vc\bin\;%PATH% -lib /DEF:pbshr100.def /OUT:pbshr100.lib -lib /DEF:pbshr105.def /OUT:pbshr105.lib -lib /DEF:pbshr110.def /OUT:pbshr110.lib -lib /DEF:pbshr115.def /OUT:pbshr115.lib -lib /DEF:pbshr120.def /OUT:pbshr120.lib -lib /DEF:pbshr125.def /OUT:pbshr125.lib +lib /MACHINE:X86 /DEF:pbshr100.def /OUT:pbshr100.lib +lib /MACHINE:X86 /DEF:pbshr105.def /OUT:pbshr105.lib +lib /MACHINE:X86 /DEF:pbshr110.def /OUT:pbshr110.lib +lib /MACHINE:X86 /DEF:pbshr115.def /OUT:pbshr115.lib +lib /MACHINE:X86 /DEF:pbshr120.def /OUT:pbshr120.lib +lib /MACHINE:X86 /DEF:pbshr125.def /OUT:pbshr125.lib +lib /MACHINE:X86 /DEF:pbshr170.def /OUT:pbshr170.lib -lib /DEF:pbvm100.def /OUT:pbvm100.lib -lib /DEF:pbvm105.def /OUT:pbvm105.lib -lib /DEF:pbvm110.def /OUT:pbvm110.lib -lib /DEF:pbvm115.def /OUT:pbvm115.lib -lib /DEF:pbvm120.def /OUT:pbvm120.lib -lib /DEF:pbvm125.def /OUT:pbvm125.lib +lib /MACHINE:X86 /DEF:pbvm100.def /OUT:pbvm100.lib +lib /MACHINE:X86 /DEF:pbvm105.def /OUT:pbvm105.lib +lib /MACHINE:X86 /DEF:pbvm110.def /OUT:pbvm110.lib +lib /MACHINE:X86 /DEF:pbvm115.def /OUT:pbvm115.lib +lib /MACHINE:X86 /DEF:pbvm120.def /OUT:pbvm120.lib +lib /MACHINE:X86 /DEF:pbvm125.def /OUT:pbvm125.lib +lib /MACHINE:X86 /DEF:pbvm170.def /OUT:pbvm170.lib diff --git a/libs/pbshr170.def b/libs/pbshr170.def new file mode 100644 index 0000000..4faae9b --- /dev/null +++ b/libs/pbshr170.def @@ -0,0 +1,7 @@ +LIBRARY "pbshr170.dll" +EXPORTS +?shlist_traversal@@YG_NPAX0P6G_NPAUstack_info@@0@Z@Z @224 +?pbstg_alc@@YGPAXPAUvm_state@@HH@Z @5 +?pbstg_sz@@YGHPAUvm_state@@PAX@Z @14 +?pbstg_realc@@YGPAXPAUvm_state@@PAXHH@Z @9 +?pbstg_fee@@YGXPAUvm_state@@PAX@Z @6 diff --git a/libs/pbvm170.def b/libs/pbvm170.def new file mode 100644 index 0000000..1213361 --- /dev/null +++ b/libs/pbvm170.def @@ -0,0 +1,37 @@ +LIBRARY "pbvm170.dll" +EXPORTS +?ot_get_field_lv@@YGPAUvalue@@PAUvm_state@@PAU1@K@Z @1198 +?ot_get_field_item_lv@@YGPAUvalue@@PAUvm_state@@PAU1@KK@Z @1405 +?ot_get_next_evaled_arg_no_convert@@YGPAUvalue@@PAUvm_state@@@Z @2133 +?ot_set_return_val@@YGXPAUvm_state@@PAUvalue@@@Z @1039 +?rt_create_obinst@@YGHPAUvm_state@@PA_WPAPAUpb_class@@@Z @1314 +?ot_create_obinst_at_lval@@YGHPAUvm_state@@PAUlvalue_ref@@HH@Z @1262 +?ob_set_ptr_field@@YGHPAUvm_state@@PAUpb_class@@HPAX@Z @934 +?ob_dup_string@@YGPA_WPAUvm_state@@PA_W@Z @1363 +?ot_get_valptr_arg@@YGPAXPAUvm_state@@PAK@Z @1065 +?ot_no_return_val@@YGXPAUvm_state@@@Z @1377 +?ob_set_ulong_field@@YGHPAUvm_state@@HHH@Z @1171 +?ob_get_ulong_field@@YGHPAUvm_state@@HH@Z @1086 +?ot_get_curr_obinst_expr@@YGHPAUvm_state@@PAPAUpb_class@@PAK@Z @1239 +?ot_get_simple_intarg@@YGFPAUvm_state@@PAK@Z @1062 +?ot_array_create_unbounded@@YGPAUpb_array@@PAUvm_state@@HH@Z @1509 +?ob_class_name_not_indirect@@YGPA_WPAUvm_state@@H@Z @1581 +?ob_group_data_srch@@YGPAUgroup_data@@PAUvm_state@@F@Z @966 +?ot_array_num_items@@YGHPAUvm_state@@PAUpb_array@@@Z @1516 +?ot_get_next_lvalue_arg@@YGPAUlvalue_ref@@PAUvm_state@@PAK@Z @1260 +?ot_array_index@@YGPAUvalue@@PAUvm_state@@PAUpb_array@@H@Z @1512 +?ob_event_module_name@@YGPA_WPAUvm_state@@PAUgroup_data@@PAUclass_data@@F@Z @1349 +?ot_free_val_ptr@@YGXPAUvm_state@@PAUvalue@@@Z @1214 +?ob_get_group_name@@YGPA_WPAUvm_state@@F@Z @1127 +?ob_get_first_user_field@@YGHPAUvm_state@@PAUpb_class@@@Z @1043 +?ot_assign_ref_array@@YGXPAUvm_state@@PAUlvalue@@PAUpb_array@@FF@Z @1384 +?ob_set_field@@YGXPAUvm_state@@PAUpb_class@@HPAUvalue@@@Z @1726 +?ob_get_class_entry@@YGPAUclass_data@@PAUvm_state@@PAPAUgroup_data@@F@Z @1102 +?ot_assign_ref_string@@YGXPAUvm_state@@PAUlvalue@@PA_WF@Z @1383 +?ob_get_no_fields@@YGHPAUvm_state@@PAUpb_class@@@Z @1489 +?ot_assign_ref_long@@YGXPAUvm_state@@PAUlvalue@@HF@Z @1323 +?ob_get_field@@YGXPAUvm_state@@PAUpb_class@@HPAUvalue@@@Z @1725 +?ot_get_ulongarg@@YGHPAUvm_state@@PAK@Z @1059 +?rtRoutineExec@@YGHPAUvm_state@@HPAUpb_class@@HHPAUvalue@@HHHH@Z @1478 +?ob_invoke_dynamic@@YGJPAUvalue@@HHPA_WHPAX0@Z @1301 +?ob_get_current_stack_location@@YGPAUcurrent_stack_info@@PAUvm_state@@@Z @1606 From a221f9682e26ee6a4296a21040c07f587bc602ef Mon Sep 17 00:00:00 2001 From: Nicolas GEORGES Date: Wed, 31 Jul 2019 13:21:34 +0100 Subject: [PATCH 7/7] add pb2019 target --- fastfuncs.sln | 3 +++ fastfuncs190/append.srf | 9 ++++++++ fastfuncs190/bitwise_and.srf | 8 +++++++ fastfuncs190/bitwise_or.srf | 8 +++++++ fastfuncs190/blob_alloc.srf | 9 ++++++++ fastfuncs190/blob_extract.srf | 39 +++++++++++++++++++++++++++++++++++ fastfuncs190/blob_import.srf | 9 ++++++++ fastfuncs190/blob_mid.srf | 9 ++++++++ fastfuncs190/call_dynamic.srf | 8 +++++++ fastfuncs190/fast_pos.srf | 8 +++++++ fastfuncs190/index.srf | 23 +++++++++++++++++++++ fastfuncs190/last_pos.srf | 8 +++++++ fastfuncs190/next_tag.srf | 8 +++++++ fastfuncs190/replace_all.srf | 9 ++++++++ fastfuncs190/sort.srf | 28 +++++++++++++++++++++++++ fastfuncs190/split.srf | 8 +++++++ fastfuncs190/stack_trace.srf | 8 +++++++ fastfuncs190/token.srf | 9 ++++++++ libs/build_libs.bat | 2 ++ libs/pbshr190.def | 7 +++++++ libs/pbvm190.def | 37 +++++++++++++++++++++++++++++++++ 21 files changed, 257 insertions(+) create mode 100644 fastfuncs190/append.srf create mode 100644 fastfuncs190/bitwise_and.srf create mode 100644 fastfuncs190/bitwise_or.srf create mode 100644 fastfuncs190/blob_alloc.srf create mode 100644 fastfuncs190/blob_extract.srf create mode 100644 fastfuncs190/blob_import.srf create mode 100644 fastfuncs190/blob_mid.srf create mode 100644 fastfuncs190/call_dynamic.srf create mode 100644 fastfuncs190/fast_pos.srf create mode 100644 fastfuncs190/index.srf create mode 100644 fastfuncs190/last_pos.srf create mode 100644 fastfuncs190/next_tag.srf create mode 100644 fastfuncs190/replace_all.srf create mode 100644 fastfuncs190/sort.srf create mode 100644 fastfuncs190/split.srf create mode 100644 fastfuncs190/stack_trace.srf create mode 100644 fastfuncs190/token.srf create mode 100644 libs/pbshr190.def create mode 100644 libs/pbvm190.def diff --git a/fastfuncs.sln b/fastfuncs.sln index 659ce49..0a0d2f3 100644 --- a/fastfuncs.sln +++ b/fastfuncs.sln @@ -16,6 +16,7 @@ Global Release120|Win32 = Release120|Win32 Release125|Win32 = Release125|Win32 Release170|Win32 = Release170|Win32 + Release190|Win32 = Release190|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Debug|Win32.ActiveCfg = Debug|Win32 @@ -36,6 +37,8 @@ Global {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release125|Win32.Build.0 = Release125|Win32 {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release170|Win32.ActiveCfg = Release170|Win32 {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release170|Win32.Build.0 = Release170|Win32 + {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release190|Win32.ActiveCfg = Release190|Win32 + {49C7C013-8F72-4D66-87B4-42F44AB496B0}.Release190|Win32.Build.0 = Release190|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/fastfuncs190/append.srf b/fastfuncs190/append.srf new file mode 100644 index 0000000..f7341dc --- /dev/null +++ b/fastfuncs190/append.srf @@ -0,0 +1,9 @@ +$PBExportHeader$append.srf +global type append from function_object +end type + +type prototypes +global function boolean append (ref blob ab_source, readonly string as_append, ...) system library "fastfuncs190.dll" alias for "Append" +global function boolean append (ref string as_source, readonly string as_append, ...) system library "fastfuncs190.dll" alias for "Append" +end prototypes + diff --git a/fastfuncs190/bitwise_and.srf b/fastfuncs190/bitwise_and.srf new file mode 100644 index 0000000..407afb8 --- /dev/null +++ b/fastfuncs190/bitwise_and.srf @@ -0,0 +1,8 @@ +$PBExportHeader$bitwise_and.srf +global type bitwise_and from function_object +end type + +type prototypes +global intrinsic function unsignedlong bitwise_and (unsignedlong x, unsignedlong y) system library "fastfuncs190.dll" alias for "Bitwise_And" +end prototypes + diff --git a/fastfuncs190/bitwise_or.srf b/fastfuncs190/bitwise_or.srf new file mode 100644 index 0000000..4429f32 --- /dev/null +++ b/fastfuncs190/bitwise_or.srf @@ -0,0 +1,8 @@ +$PBExportHeader$bitwise_or.srf +global type bitwise_or from function_object +end type + +type prototypes +global intrinsic function unsignedlong bitwise_or (unsignedlong x, unsignedlong y) system library "fastfuncs190.dll" alias for "Bitwise_Or" +end prototypes + diff --git a/fastfuncs190/blob_alloc.srf b/fastfuncs190/blob_alloc.srf new file mode 100644 index 0000000..a862057 --- /dev/null +++ b/fastfuncs190/blob_alloc.srf @@ -0,0 +1,9 @@ +$PBExportHeader$blob_alloc.srf +global type blob_alloc from function_object +end type + +type prototypes +global function blob blob_alloc (unsignedlong length) system library "fastfuncs190.dll" alias for 'Blob_Alloc' +global function blob blob_alloc (unsignedlong length, boolean zero_memory) system library "fastfuncs190.dll" alias for 'Blob_Alloc' +end prototypes + diff --git a/fastfuncs190/blob_extract.srf b/fastfuncs190/blob_extract.srf new file mode 100644 index 0000000..a92a8e7 --- /dev/null +++ b/fastfuncs190/blob_extract.srf @@ -0,0 +1,39 @@ +$PBExportHeader$blob_extract.srf +global type blob_extract from function_object +end type + +type prototypes +global function boolean blob_extract (ref powerobject ai_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref boolean ai_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref real ai_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref char ai_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref integer ai_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref uint ai_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref long al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref ulong al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref string al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref longlong al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref dec al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref double al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref date al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref time al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref datetime al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref byte al_val, readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref powerobject ai_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref boolean ai_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref real ai_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref char ai_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref integer ai_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref uint ai_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref long al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref ulong al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref string al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref longlong al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref dec al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref double al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref date al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref time al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref datetime al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +global function boolean blob_extract (ref byte al_val[], readonly blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Extract' +end prototypes + diff --git a/fastfuncs190/blob_import.srf b/fastfuncs190/blob_import.srf new file mode 100644 index 0000000..29fbafd --- /dev/null +++ b/fastfuncs190/blob_import.srf @@ -0,0 +1,9 @@ +$PBExportHeader$blob_import.srf +global type blob_import from function_object +end type + +type prototypes +global function boolean blob_import (readonly any aa_value, ref blob ab_data, ref long al_pos) system library "fastfuncs190.dll" alias for 'Blob_Import' +global function boolean blob_import (readonly any aa_value, ref blob ab_data) system library "fastfuncs190.dll" alias for 'Blob_Import' +end prototypes + diff --git a/fastfuncs190/blob_mid.srf b/fastfuncs190/blob_mid.srf new file mode 100644 index 0000000..6ecd810 --- /dev/null +++ b/fastfuncs190/blob_mid.srf @@ -0,0 +1,9 @@ +$PBExportHeader$blob_mid.srf +global type blob_mid from function_object +end type + +type prototypes +global function blob blob_mid (readonly blob ab_in, unsignedlong al_start) system library "fastfuncs190.dll" alias for 'Blob_Mid' +global function blob blob_mid (readonly blob ab_in, unsignedlong al_start, unsignedlong al_len) system library "fastfuncs190.dll" alias for 'Blob_Mid' +end prototypes + diff --git a/fastfuncs190/call_dynamic.srf b/fastfuncs190/call_dynamic.srf new file mode 100644 index 0000000..bec38af --- /dev/null +++ b/fastfuncs190/call_dynamic.srf @@ -0,0 +1,8 @@ +$PBExportHeader$call_dynamic.srf +global type call_dynamic from function_object +end type + +type prototypes +global function any call_dynamic (powerobject apow_obj, readonly string as_method, ...) system library "fastfuncs190.dll" alias for "Call_Dynamic" +end prototypes + diff --git a/fastfuncs190/fast_pos.srf b/fastfuncs190/fast_pos.srf new file mode 100644 index 0000000..a4d5fa4 --- /dev/null +++ b/fastfuncs190/fast_pos.srf @@ -0,0 +1,8 @@ +$PBExportHeader$fast_pos.srf +global type fast_pos from function_object +end type + +type prototypes +global function long fast_pos (readonly string as_source, readonly string as_find) system library "fastfuncs190.dll" alias for 'Fast_Pos' +end prototypes + diff --git a/fastfuncs190/index.srf b/fastfuncs190/index.srf new file mode 100644 index 0000000..e3d7b84 --- /dev/null +++ b/fastfuncs190/index.srf @@ -0,0 +1,23 @@ +$PBExportHeader$index.srf +global type index from function_object +end type + +type prototypes +global function long index (readonly int as_find, readonly int as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly boolean as_find, readonly boolean as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly uint as_find, readonly uint as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly char as_find, readonly char as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly byte as_find, readonly byte as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly long as_find, readonly long as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly ulong as_find, readonly ulong as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly real as_find, readonly real as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly longlong as_find, readonly longlong as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly double as_find, readonly double as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly decimal as_find, readonly decimal as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly blob as_find, readonly blob as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly string as_find, readonly string as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly date as_find, readonly date as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly time as_find, readonly time as_array[]) system library "fastfuncs190.dll" alias for 'Index' +global function long index (readonly datetime as_find, readonly datetime as_array[]) system library "fastfuncs190.dll" alias for 'Index' +end prototypes + diff --git a/fastfuncs190/last_pos.srf b/fastfuncs190/last_pos.srf new file mode 100644 index 0000000..7dee4d9 --- /dev/null +++ b/fastfuncs190/last_pos.srf @@ -0,0 +1,8 @@ +$PBExportHeader$last_pos.srf +global type last_pos from function_object +end type + +type prototypes +global function long last_pos (readonly string as_source, readonly string as_find) system library "fastfuncs190.dll" alias for 'Last_Pos' +end prototypes + diff --git a/fastfuncs190/next_tag.srf b/fastfuncs190/next_tag.srf new file mode 100644 index 0000000..c709932 --- /dev/null +++ b/fastfuncs190/next_tag.srf @@ -0,0 +1,8 @@ +$PBExportHeader$next_tag.srf +global type next_tag from function_object +end type + +type prototypes +global function boolean next_tag (readonly string as_source, readonly string as_start_delim, readonly string as_end_delim, ref long al_start_pos, ref string as_tag) system library 'fastfuncs190.dll' alias for "Next_Tag" +end prototypes + diff --git a/fastfuncs190/replace_all.srf b/fastfuncs190/replace_all.srf new file mode 100644 index 0000000..0594453 --- /dev/null +++ b/fastfuncs190/replace_all.srf @@ -0,0 +1,9 @@ +$PBExportHeader$replace_all.srf +global type replace_all from function_object +end type + +type prototypes +global function string replace_all (readonly string source, readonly string find, readonly string replace) system library "fastfuncs190.dll" alias for "Replace_All" +global function string replace_all (readonly string source, readonly string find, readonly string replace, boolean insensitive) system library "fastfuncs190.dll" alias for "Replace_All" +end prototypes + diff --git a/fastfuncs190/sort.srf b/fastfuncs190/sort.srf new file mode 100644 index 0000000..98ebcfa --- /dev/null +++ b/fastfuncs190/sort.srf @@ -0,0 +1,28 @@ +$PBExportHeader$sort.srf +global type sort from function_object +end type + +type prototypes +global function integer sort (ref string as_values[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref powerobject aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref integer aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref string aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref long aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref boolean aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref double aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref ulong aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref date aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref time aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref datetime aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref any aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref decimal aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref blob aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref uint aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref longlong aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref character aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref objhandle aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref real aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +global function integer sort (ref string as_values[], boolean insensitive, ref byte aa_sort_too[]) system library 'fastfuncs190.dll' alias for "Sort" +end prototypes + diff --git a/fastfuncs190/split.srf b/fastfuncs190/split.srf new file mode 100644 index 0000000..2c6133d --- /dev/null +++ b/fastfuncs190/split.srf @@ -0,0 +1,8 @@ +$PBExportHeader$split.srf +global type split from function_object +end type + +type prototypes +global function boolean split (readonly string as_source, readonly string as_delim, ref string as_values[]) system library 'fastfuncs190.dll' alias for "Split" +end prototypes + diff --git a/fastfuncs190/stack_trace.srf b/fastfuncs190/stack_trace.srf new file mode 100644 index 0000000..6b67aaf --- /dev/null +++ b/fastfuncs190/stack_trace.srf @@ -0,0 +1,8 @@ +HA$PBExportHeader$stack_trace.srf +global type stack_trace from function_object +end type + +type prototypes +global function boolean stack_trace (ref string as_call_stack[]) system library 'fastfuncs190.dll' alias for "Stack_Trace" +end prototypes + diff --git a/fastfuncs190/token.srf b/fastfuncs190/token.srf new file mode 100644 index 0000000..9fb17dc --- /dev/null +++ b/fastfuncs190/token.srf @@ -0,0 +1,9 @@ +$PBExportHeader$token.srf +global type token from function_object +end type + +type prototypes +global function boolean token (readonly string as_source, readonly string as_delim, ref long al_pos, ref string as_token) system library 'fastfuncs190.dll' alias for "Token" +global function boolean token (ref string as_source, readonly string as_delim, ref string as_token) system library 'fastfuncs190.dll' alias for "Token2" +end prototypes + diff --git a/libs/build_libs.bat b/libs/build_libs.bat index 6a890f6..982c879 100644 --- a/libs/build_libs.bat +++ b/libs/build_libs.bat @@ -7,6 +7,7 @@ lib /MACHINE:X86 /DEF:pbshr115.def /OUT:pbshr115.lib lib /MACHINE:X86 /DEF:pbshr120.def /OUT:pbshr120.lib lib /MACHINE:X86 /DEF:pbshr125.def /OUT:pbshr125.lib lib /MACHINE:X86 /DEF:pbshr170.def /OUT:pbshr170.lib +lib /MACHINE:X86 /DEF:pbshr190.def /OUT:pbshr190.lib lib /MACHINE:X86 /DEF:pbvm100.def /OUT:pbvm100.lib lib /MACHINE:X86 /DEF:pbvm105.def /OUT:pbvm105.lib @@ -15,3 +16,4 @@ lib /MACHINE:X86 /DEF:pbvm115.def /OUT:pbvm115.lib lib /MACHINE:X86 /DEF:pbvm120.def /OUT:pbvm120.lib lib /MACHINE:X86 /DEF:pbvm125.def /OUT:pbvm125.lib lib /MACHINE:X86 /DEF:pbvm170.def /OUT:pbvm170.lib +lib /MACHINE:X86 /DEF:pbvm190.def /OUT:pbvm190.lib \ No newline at end of file diff --git a/libs/pbshr190.def b/libs/pbshr190.def new file mode 100644 index 0000000..f913a61 --- /dev/null +++ b/libs/pbshr190.def @@ -0,0 +1,7 @@ +LIBRARY "pbshr190.dll" +EXPORTS +?shlist_traversal@@YG_NPAX0P6G_NPAUstack_info@@0@Z@Z @224 +?pbstg_alc@@YGPAXPAUvm_state@@HH@Z @5 +?pbstg_sz@@YGHPAUvm_state@@PAX@Z @14 +?pbstg_realc@@YGPAXPAUvm_state@@PAXHH@Z @9 +?pbstg_fee@@YGXPAUvm_state@@PAX@Z @6 diff --git a/libs/pbvm190.def b/libs/pbvm190.def new file mode 100644 index 0000000..8fd244a --- /dev/null +++ b/libs/pbvm190.def @@ -0,0 +1,37 @@ +LIBRARY "pbvm190.dll" +EXPORTS +?ot_get_field_lv@@YGPAUvalue@@PAUvm_state@@PAU1@K@Z @1198 +?ot_get_field_item_lv@@YGPAUvalue@@PAUvm_state@@PAU1@KK@Z @1405 +?ot_get_next_evaled_arg_no_convert@@YGPAUvalue@@PAUvm_state@@@Z @2133 +?ot_set_return_val@@YGXPAUvm_state@@PAUvalue@@@Z @1039 +?rt_create_obinst@@YGHPAUvm_state@@PA_WPAPAUpb_class@@@Z @1314 +?ot_create_obinst_at_lval@@YGHPAUvm_state@@PAUlvalue_ref@@HH@Z @1262 +?ob_set_ptr_field@@YGHPAUvm_state@@PAUpb_class@@HPAX@Z @934 +?ob_dup_string@@YGPA_WPAUvm_state@@PA_W@Z @1363 +?ot_get_valptr_arg@@YGPAXPAUvm_state@@PAK@Z @1065 +?ot_no_return_val@@YGXPAUvm_state@@@Z @1377 +?ob_set_ulong_field@@YGHPAUvm_state@@HHH@Z @1171 +?ob_get_ulong_field@@YGHPAUvm_state@@HH@Z @1086 +?ot_get_curr_obinst_expr@@YGHPAUvm_state@@PAPAUpb_class@@PAK@Z @1239 +?ot_get_simple_intarg@@YGFPAUvm_state@@PAK@Z @1062 +?ot_array_create_unbounded@@YGPAUpb_array@@PAUvm_state@@HH@Z @1509 +?ob_class_name_not_indirect@@YGPA_WPAUvm_state@@H@Z @1581 +?ob_group_data_srch@@YGPAUgroup_data@@PAUvm_state@@F@Z @966 +?ot_array_num_items@@YGHPAUvm_state@@PAUpb_array@@@Z @1516 +?ot_get_next_lvalue_arg@@YGPAUlvalue_ref@@PAUvm_state@@PAK@Z @1260 +?ot_array_index@@YGPAUvalue@@PAUvm_state@@PAUpb_array@@H@Z @1512 +?ob_event_module_name@@YGPA_WPAUvm_state@@PAUgroup_data@@PAUclass_data@@F@Z @1349 +?ot_free_val_ptr@@YGXPAUvm_state@@PAUvalue@@@Z @1214 +?ob_get_group_name@@YGPA_WPAUvm_state@@F@Z @1127 +?ob_get_first_user_field@@YGHPAUvm_state@@PAUpb_class@@@Z @1043 +?ot_assign_ref_array@@YGXPAUvm_state@@PAUlvalue@@PAUpb_array@@FF@Z @1384 +?ob_set_field@@YGXPAUvm_state@@PAUpb_class@@HPAUvalue@@@Z @1726 +?ob_get_class_entry@@YGPAUclass_data@@PAUvm_state@@PAPAUgroup_data@@F@Z @1102 +?ot_assign_ref_string@@YGXPAUvm_state@@PAUlvalue@@PA_WF@Z @1383 +?ob_get_no_fields@@YGHPAUvm_state@@PAUpb_class@@@Z @1489 +?ot_assign_ref_long@@YGXPAUvm_state@@PAUlvalue@@HF@Z @1323 +?ob_get_field@@YGXPAUvm_state@@PAUpb_class@@HPAUvalue@@@Z @1725 +?ot_get_ulongarg@@YGHPAUvm_state@@PAK@Z @1059 +?rtRoutineExec@@YGHPAUvm_state@@HPAUpb_class@@HHPAUvalue@@HHHH@Z @1478 +?ob_invoke_dynamic@@YGJPAUvalue@@HHPA_WHPAX0@Z @1301 +?ob_get_current_stack_location@@YGPAUcurrent_stack_info@@PAUvm_state@@@Z @1606