magic callbacks all need to have same type signature
Gurusamy Sarathy [Tue, 15 Aug 2000 19:54:05 +0000 (19:54 +0000)]
p4raw-id: //depot/perl@6642

embed.pl
mg.c
proto.h

index 81bee1f..9353435 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -1680,7 +1680,7 @@ p |int    |magic_mutexfree|SV* sv|MAGIC* mg
 p      |int    |magic_nextpack |SV* sv|MAGIC* mg|SV* key
 p      |U32    |magic_regdata_cnt|SV* sv|MAGIC* mg
 p      |int    |magic_regdatum_get|SV* sv|MAGIC* mg
-p      |void   |magic_regdatum_set|SV* sv|MAGIC* mg
+p      |int    |magic_regdatum_set|SV* sv|MAGIC* mg
 p      |int    |magic_set      |SV* sv|MAGIC* mg
 p      |int    |magic_setamagic|SV* sv|MAGIC* mg
 p      |int    |magic_setarylen|SV* sv|MAGIC* mg
diff --git a/mg.c b/mg.c
index c0d6132..d4e1a04 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -379,11 +379,13 @@ Perl_magic_regdatum_get(pTHX_ SV *sv, MAGIC *mg)
     return 0;
 }
 
-void
+int
 Perl_magic_regdatum_set(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     Perl_croak(aTHX_ PL_no_modify);
+    /* NOT REACHED */
+    return 0;
 }
 
 U32
diff --git a/proto.h b/proto.h
index 65d2bb1..841e32a 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -427,7 +427,7 @@ PERL_CALLCONV int   Perl_magic_mutexfree(pTHX_ SV* sv, MAGIC* mg);
 PERL_CALLCONV int      Perl_magic_nextpack(pTHX_ SV* sv, MAGIC* mg, SV* key);
 PERL_CALLCONV U32      Perl_magic_regdata_cnt(pTHX_ SV* sv, MAGIC* mg);
 PERL_CALLCONV int      Perl_magic_regdatum_get(pTHX_ SV* sv, MAGIC* mg);
-PERL_CALLCONV void     Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg);
+PERL_CALLCONV int      Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg);
 PERL_CALLCONV int      Perl_magic_set(pTHX_ SV* sv, MAGIC* mg);
 PERL_CALLCONV int      Perl_magic_setamagic(pTHX_ SV* sv, MAGIC* mg);
 PERL_CALLCONV int      Perl_magic_setarylen(pTHX_ SV* sv, MAGIC* mg);