PERL_OBJECT bincompat fixes from Douglas Lankshear <dougl@ActiveState.com>
Gurusamy Sarathy [Sun, 2 Aug 1998 03:54:15 +0000 (03:54 +0000)]
Date: Wed, 29 Jul 1998 10:45:31 -0700
Message-ID: <000101bdbb18$ae767550$a32fa8c0@tau.Active>
Subject: [PATCH 5.005_01] Fixes binary compatibility for PERL_OBJECT
--
Date: Sat, 1 Aug 1998 09:33:19 -0700
Message-ID: <000701bdbd6a$17ada180$a32fa8c0@tau.Active>
Subject: [PATCH 5.005_01]

p4raw-id: //depot/maint-5.005/perl@1685

perl.h
proto.h

diff --git a/perl.h b/perl.h
index e2b34bc..c5597aa 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1989,6 +1989,12 @@ typedef void *Thread;
 #endif
 
 #ifdef PERL_OBJECT
+/*
+ * The following is a buffer where new variables must
+ * be defined to maintain binary compatibility with PERL_OBJECT
+ * for 5.005
+ */
+PERLVAR(object_compatibility[30],      char)
 };
 
 #include "objpp.h"
diff --git a/proto.h b/proto.h
index d8226cd..5da657b 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -5,6 +5,11 @@
 START_EXTERN_C
 #endif
 
+/* NOTE!!! When new virtual functions are added, they must be added at
+ * the end of this file to maintain binary compatibility with PERL_OBJECT
+ */
+
+
 #ifndef NEXT30_NO_ATTRIBUTE
 #ifndef HASATTRIBUTE       /* disable GNU-cc attribute checking? */
 #ifdef  __attribute__      /* Avoid possible redefinition errors */
@@ -527,13 +532,9 @@ VIRTUAL void       sv_add_arena _((char* ptr, U32 size, U32 flags));
 VIRTUAL int    sv_backoff _((SV* sv));
 VIRTUAL SV*    sv_bless _((SV* sv, HV* stash));
 VIRTUAL void   sv_catpvf _((SV* sv, const char* pat, ...));
-VIRTUAL void   sv_catpvf_mg _((SV *sv, const char* pat, ...));
 VIRTUAL void   sv_catpv _((SV* sv, char* ptr));
-VIRTUAL void   sv_catpv_mg _((SV *sv, char *ptr));
 VIRTUAL void   sv_catpvn _((SV* sv, char* ptr, STRLEN len));
-VIRTUAL void   sv_catpvn_mg _((SV *sv, char *ptr, STRLEN len));
 VIRTUAL void   sv_catsv _((SV* dsv, SV* ssv));
-VIRTUAL void   sv_catsv_mg _((SV *dstr, SV *sstr));
 VIRTUAL void   sv_chop _((SV* sv, char* ptr));
 VIRTUAL void   sv_clean_all _((void));
 VIRTUAL void   sv_clean_objs _((void));
@@ -572,25 +573,17 @@ VIRTUAL void      sv_replace _((SV* sv, SV* nsv));
 VIRTUAL void   sv_report_used _((void));
 VIRTUAL void   sv_reset _((char* s, HV* stash));
 VIRTUAL void   sv_setpvf _((SV* sv, const char* pat, ...));
-VIRTUAL void   sv_setpvf_mg _((SV *sv, const char* pat, ...));
 VIRTUAL void   sv_setiv _((SV* sv, IV num));
-VIRTUAL void   sv_setiv_mg _((SV *sv, IV i));
 VIRTUAL void   sv_setpviv _((SV* sv, IV num));
-VIRTUAL void   sv_setpviv_mg _((SV *sv, IV iv));
 VIRTUAL void   sv_setuv _((SV* sv, UV num));
-VIRTUAL void   sv_setuv_mg _((SV *sv, UV u));
 VIRTUAL void   sv_setnv _((SV* sv, double num));
-VIRTUAL void   sv_setnv_mg _((SV *sv, double num));
 VIRTUAL SV*    sv_setref_iv _((SV* rv, char* classname, IV iv));
 VIRTUAL SV*    sv_setref_nv _((SV* rv, char* classname, double nv));
 VIRTUAL SV*    sv_setref_pv _((SV* rv, char* classname, void* pv));
 VIRTUAL SV*    sv_setref_pvn _((SV* rv, char* classname, char* pv, I32 n));
 VIRTUAL void   sv_setpv _((SV* sv, const char* ptr));
-VIRTUAL void   sv_setpv_mg _((SV *sv, const char *ptr));
 VIRTUAL void   sv_setpvn _((SV* sv, const char* ptr, STRLEN len));
-VIRTUAL void   sv_setpvn_mg _((SV *sv, const char *ptr, STRLEN len));
 VIRTUAL void   sv_setsv _((SV* dsv, SV* ssv));
-VIRTUAL void   sv_setsv_mg _((SV *dstr, SV *sstr));
 VIRTUAL void   sv_taint _((SV* sv));
 VIRTUAL bool   sv_tainted _((SV* sv));
 VIRTUAL int    sv_unmagic _((SV* sv, int type));
@@ -598,7 +591,6 @@ VIRTUAL void        sv_unref _((SV* sv));
 VIRTUAL void   sv_untaint _((SV* sv));
 VIRTUAL bool   sv_upgrade _((SV* sv, U32 mt));
 VIRTUAL void   sv_usepvn _((SV* sv, char* ptr, STRLEN len));
-VIRTUAL void   sv_usepvn_mg _((SV *sv, char *ptr, STRLEN len));
 VIRTUAL void   sv_vcatpvfn _((SV* sv, const char* pat, STRLEN patlen,
                       va_list* args, SV** svargs, I32 svmax,
                       bool *used_locale));
@@ -886,3 +878,21 @@ VIRTUAL void byterun _((struct bytestream bs));
 VIRTUAL void byterun _((PerlIO *fp));
 #endif /* INDIRECT_BGET_MACROS */
 
+VIRTUAL void   sv_catpvf_mg _((SV *sv, const char* pat, ...));
+VIRTUAL void   sv_catpv_mg _((SV *sv, char *ptr));
+VIRTUAL void   sv_catpvn_mg _((SV *sv, char *ptr, STRLEN len));
+VIRTUAL void   sv_catsv_mg _((SV *dstr, SV *sstr));
+VIRTUAL void   sv_setpvf_mg _((SV *sv, const char* pat, ...));
+VIRTUAL void   sv_setiv_mg _((SV *sv, IV i));
+VIRTUAL void   sv_setpviv_mg _((SV *sv, IV iv));
+VIRTUAL void   sv_setuv_mg _((SV *sv, UV u));
+VIRTUAL void   sv_setnv_mg _((SV *sv, double num));
+VIRTUAL void   sv_setpv_mg _((SV *sv, const char *ptr));
+VIRTUAL void   sv_setpvn_mg _((SV *sv, const char *ptr, STRLEN len));
+VIRTUAL void   sv_setsv_mg _((SV *dstr, SV *sstr));
+VIRTUAL void   sv_usepvn_mg _((SV *sv, char *ptr, STRLEN len));
+
+/* New virtual functions must be added here to maintain binary
+ * compatablity with PERL_OBJECT
+ */
+