This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: useless use of void context work-around
[perl5.git] / ext / DynaLoader / dl_next.xs
index 92d14bc..b8c19f2 100644 (file)
@@ -72,6 +72,7 @@ enum dyldErrorSource
 static void TranslateError
     (const char *path, enum dyldErrorSource type, int number)
 {
+    dTHX;
     char *error;
     unsigned int index;
     static char *OFIErrorStrings[] =
@@ -92,15 +93,15 @@ static void TranslateError
        index = number;
        if (index > NUM_OFI_ERRORS - 1)
            index = NUM_OFI_ERRORS - 1;
-       error = form(OFIErrorStrings[index], path, number);
+       error = Perl_form_nocontext(OFIErrorStrings[index], path, number);
        break;
 
     default:
-       error = form("%s(%d): Totally unknown error type %d\n",
+       error = Perl_form_nocontext("%s(%d): Totally unknown error type %d\n",
                     path, number, type);
        break;
     }
-    safefree(dl_last_error);
+    Safefree(dl_last_error);
     dl_last_error = savepv(error);
 }
 
@@ -151,10 +152,10 @@ static void TransferError(NXStream *s)
     int len, maxlen;
 
     if ( dl_last_error ) {
-        safefree(dl_last_error);
+        Safefree(dl_last_error);
     }
     NXGetMemoryBuffer(s, &buffer, &len, &maxlen);
-    dl_last_error = safemalloc(len);
+    New(1097, dl_last_error, len, char);
     strcpy(dl_last_error, buffer);
 }
 
@@ -172,6 +173,7 @@ static char *dlopen(char *path, int mode /* mode is ignored */)
     I32 i, psize;
     char *result;
     char **p;
+    STRLEN n_a;
        
     /* Do not load what is already loaded into this process */
     if (hv_fetch(dl_loaded_files, path, strlen(path), 0))
@@ -182,7 +184,7 @@ static char *dlopen(char *path, int mode /* mode is ignored */)
     p = (char **) safemalloc(psize * sizeof(char*));
     p[0] = path;
     for(i=1; i<psize-1; i++) {
-       p[i] = SvPVx(*av_fetch(dl_resolve_using, i-1, TRUE), na);
+       p[i] = SvPVx(*av_fetch(dl_resolve_using, i-1, TRUE), n_a);
     }
     p[psize-1] = 0;
     rld_success = rld_load(nxerr, (struct mach_header **)0, p,
@@ -191,7 +193,7 @@ static char *dlopen(char *path, int mode /* mode is ignored */)
     if (rld_success) {
        result = path;
        /* prevent multiple loads of same file into same process */
-       hv_store(dl_loaded_files, path, strlen(path), &sv_yes, 0);
+       hv_store(dl_loaded_files, path, strlen(path), &PL_sv_yes, 0);
     } else {
        TransferError(nxerr);
        result = (char*) 0;
@@ -208,7 +210,7 @@ char *symbol;
     NXStream   *nxerr = OpenError();
     unsigned long      symref = 0;
 
-    if (!rld_lookup(nxerr, form("_%s", symbol), &symref))
+    if (!rld_lookup(nxerr, Perl_form_nocontext("_%s", symbol), &symref))
        TransferError(nxerr);
     CloseError(nxerr);
     return (void*) symref;
@@ -221,16 +223,16 @@ char *symbol;
 
 
 static void
-dl_private_init()
+dl_private_init(pTHX)
 {
-    (void)dl_generic_private_init();
-    dl_resolve_using = perl_get_av("DynaLoader::dl_resolve_using", 0x4);
+    (void)dl_generic_private_init(aTHX);
+    dl_resolve_using = get_av("DynaLoader::dl_resolve_using", GV_ADDMULTI);
 }
  
 MODULE = DynaLoader     PACKAGE = DynaLoader
 
 BOOT:
-    (void)dl_private_init();
+    (void)dl_private_init(aTHX);
 
 
 
@@ -241,16 +243,16 @@ dl_load_file(filename, flags=0)
     PREINIT:
     int mode = 1;
     CODE:
-    DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "dl_load_file(%s,%x):\n", filename,flags));
+    DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_load_file(%s,%x):\n", filename,flags));
     if (flags & 0x01)
-       warn("Can't make loaded symbols global on this platform while loading %s",filename);
+       Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename);
     RETVAL = dlopen(filename, mode) ;
-    DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), " libref=%x\n", RETVAL));
+    DLDEBUG(2,PerlIO_printf(Perl_debug_log, " libref=%x\n", RETVAL));
     ST(0) = sv_newmortal() ;
     if (RETVAL == NULL)
-       SaveError("%s",dlerror()) ;
+       SaveError(aTHX_ "%s",dlerror()) ;
     else
-       sv_setiv( ST(0), (IV)RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL) );
 
 
 void *
@@ -259,19 +261,19 @@ dl_find_symbol(libhandle, symbolname)
     char *             symbolname
     CODE:
 #if NS_TARGET_MAJOR >= 4
-    symbolname = form("_%s", symbolname);
+    symbolname = Perl_form_nocontext("_%s", symbolname);
 #endif
-    DLDEBUG(2, PerlIO_printf(PerlIO_stderr(),
+    DLDEBUG(2, PerlIO_printf(Perl_debug_log,
                             "dl_find_symbol(handle=%lx, symbol=%s)\n",
                             (unsigned long) libhandle, symbolname));
     RETVAL = dlsym(libhandle, symbolname);
-    DLDEBUG(2, PerlIO_printf(PerlIO_stderr(),
+    DLDEBUG(2, PerlIO_printf(Perl_debug_log,
                             "  symbolref = %lx\n", (unsigned long) RETVAL));
     ST(0) = sv_newmortal() ;
     if (RETVAL == NULL)
-       SaveError("%s",dlerror()) ;
+       SaveError(aTHX_ "%s",dlerror()) ;
     else
-       sv_setiv( ST(0), (IV)RETVAL);
+       sv_setiv( ST(0), PTR2IV(RETVAL) );
 
 
 void
@@ -288,9 +290,11 @@ dl_install_xsub(perl_name, symref, filename="$Package")
     void *     symref 
     char *     filename
     CODE:
-    DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), "dl_install_xsub(name=%s, symref=%x)\n",
+    DLDEBUG(2,PerlIO_printf(Perl_debug_log, "dl_install_xsub(name=%s, symref=%x)\n",
            perl_name, symref));
-    ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)())symref, filename)));
+    ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name,
+                                       (void(*)(pTHX_ CV *))symref,
+                                       filename)));
 
 
 char *