diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1999-06-09 18:03:01 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-06-09 18:03:01 +0000 |
commit | cea2e8a9dd23747fd2b66edc86c58c64e9970321 (patch) | |
tree | 50e1ad203239e885681b4e804c46363e763ca432 /scope.h | |
parent | f019efd000a9017df645fb6c4cce1e7401ac9445 (diff) | |
download | perl-cea2e8a9dd23747fd2b66edc86c58c64e9970321.tar.gz |
more complete support for implicit thread/interpreter pointer,
enabled via -DPERL_IMPLICIT_CONTEXT (all changes are noops
without that enabled):
- USE_THREADS now enables PERL_IMPLICIT_CONTEXT, so dTHR
is a noop; tests pass on Solaris; should be faster now!
- MULTIPLICITY has been tested with and without
PERL_IMPLICIT_CONTEXT on Solaris
- improved function database now merged with embed.pl
- everything except the varargs functions have foo(a,b,c) macros
to provide compatibility
- varargs functions default to compatibility variants that
get the context pointer using dTHX
- there should be almost no source compatibility issues as a
result of all this
- dl_foo.xs changes other than dl_dlopen.xs untested
- still needs documentation, fixups for win32 etc
Next step: migrate most non-mutex variables from perlvars.h
to intrpvar.h
p4raw-id: //depot/perl@3524
Diffstat (limited to 'scope.h')
-rw-r--r-- | scope.h | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -48,12 +48,12 @@ #define ENTER \ STMT_START { \ push_scope(); \ - DEBUG_l(WITH_THR(deb("ENTER scope %ld at %s:%d\n", \ + DEBUG_l(WITH_THR(Perl_deb(aTHX_ "ENTER scope %ld at %s:%d\n", \ PL_scopestack_ix, __FILE__, __LINE__))); \ } STMT_END #define LEAVE \ STMT_START { \ - DEBUG_l(WITH_THR(deb("LEAVE scope %ld at %s:%d\n", \ + DEBUG_l(WITH_THR(Perl_deb(aTHX_ "LEAVE scope %ld at %s:%d\n", \ PL_scopestack_ix, __FILE__, __LINE__))); \ pop_scope(); \ } STMT_END @@ -82,9 +82,9 @@ #define SAVEDELETE(h,k,l) \ save_delete(SOFT_CAST(HV*)(h), SOFT_CAST(char*)(k), (I32)(l)) #ifdef PERL_OBJECT -#define CALLDESTRUCTOR(p) this->*SSPOPDPTR(p) +#define CALLDESTRUCTOR this->*SSPOPDPTR #else -#define CALLDESTRUCTOR(p) (*SSPOPDPTR)(aTHX_ p) +#define CALLDESTRUCTOR (*SSPOPDPTR) #endif #define SAVEDESTRUCTOR(f,p) \ save_destructor((DESTRUCTORFUNC_t)(FUNC_NAME_TO_PTR(f)), \ @@ -156,8 +156,8 @@ typedef struct jmpenv JMPENV; * Function that catches/throws, and its callback for the * body of protected processing. */ -typedef void *(CPERLscope(*protect_body_t)) (va_list); -typedef void *(CPERLscope(*protect_proc_t)) (int *, protect_body_t, ...); +typedef void *(CPERLscope(*protect_body_t)) (pTHX_ va_list); +typedef void *(CPERLscope(*protect_proc_t)) (pTHX_ int *, protect_body_t, ...); /* * How to build the first jmpenv. |