diff options
author | Daniel Dragan <bulk88@hotmail.com> | 2014-11-15 23:45:19 -0500 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2014-11-15 22:23:19 -0800 |
commit | bb6a367ad5d39a6d163bda06f6788f8e7833b713 (patch) | |
tree | a9e1341f0d27938b5e8a1f4184e3b24aaed65ad0 /ext/DynaLoader/dl_vms.xs | |
parent | f8d5a52263698f3448751c5ac18d2b5edac28b36 (diff) | |
download | perl-bb6a367ad5d39a6d163bda06f6788f8e7833b713.tar.gz |
misc optimizing in DynaLoader
dl_last_error is "#define dl_last_error (SvPVX(MY_CXT.x_dl_last_error))"
since the data is already in a SV *, use newSVsv instead of turning it into
a strlen-ed (eventually) char *.
-win32 dl_load_file never uses flags, so don't do a SvIV in void context
- dl_load_file cant use "flags=NULL" because of test
"calling DynaLoader::dl_load_file() with no argument" in DynaLoader.t
-OS_Error_String stop repeatedly computing address into MY_CXT and
derefing after PerlProc_GetOSError
function sizes in machine code bytes on VC 2003
b4 0x69 OS_Error_String af 0x67
b4 0x9D _XS_DynaLoader_dl_error af 0x6B
b4 0x108 _XS_DynaLoader_dl_load_file af 0xD6
Diffstat (limited to 'ext/DynaLoader/dl_vms.xs')
-rw-r--r-- | ext/DynaLoader/dl_vms.xs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/ext/DynaLoader/dl_vms.xs b/ext/DynaLoader/dl_vms.xs index 23cf11b97d..bc9782cced 100644 --- a/ext/DynaLoader/dl_vms.xs +++ b/ext/DynaLoader/dl_vms.xs @@ -347,13 +347,13 @@ dl_install_xsub(perl_name, symref, filename="$Package") XS_DYNAMIC_FILENAME))); -char * +SV * dl_error() CODE: dMY_CXT; - RETVAL = dl_last_error ; + RETVAL = newSVsv(MY_CXT.x_dl_last_error); OUTPUT: - RETVAL + RETVAL #if defined(USE_ITHREADS) |