--- Convert-Scalar/Scalar.xs 2002/01/20 04:23:59 1.2 +++ Convert-Scalar/Scalar.xs 2002/07/05 11:44:55 1.3 @@ -18,6 +18,8 @@ RETVAL = !!SvUTF8 (scalar); if (items > 1) { + if (SvREADONLY (scalar)) + croak ("Convert::Scalar::utf8 called on read only scalar"); if (SvTRUE (mode)) SvUTF8_on (scalar); else @@ -31,6 +33,9 @@ SV * scalar PROTOTYPE: $ PPCODE: + if (SvREADONLY (scalar)) + croak ("Convert::Scalar::utf8_on called on read only scalar"); + SvGETMAGIC (scalar); SvUTF8_on (scalar); if (GIMME_V != G_VOID) @@ -41,6 +46,9 @@ SV * scalar PROTOTYPE: $ PPCODE: + if (SvREADONLY (scalar)) + croak ("Convert::Scalar::utf8_off called on read only scalar"); + SvGETMAGIC (scalar); SvUTF8_off (scalar); if (GIMME_V != G_VOID) @@ -62,6 +70,9 @@ SV * scalar PROTOTYPE: $ PPCODE: + if (SvREADONLY (scalar)) + croak ("Convert::Scalar::utf8_upgrade called on read only scalar"); + sv_utf8_upgrade(scalar); if (GIMME_V != G_VOID) XPUSHs (sv_2mortal (SvREFCNT_inc (scalar))); @@ -72,6 +83,9 @@ bool fail_ok PROTOTYPE: $;$ CODE: + if (SvREADONLY (scalar)) + croak ("Convert::Scalar::utf8_downgrade called on read only scalar"); + RETVAL = sv_utf8_downgrade (scalar, fail_ok); OUTPUT: RETVAL @@ -81,6 +95,9 @@ SV * scalar PROTOTYPE: $ PPCODE: + if (SvREADONLY (scalar)) + croak ("Convert::Scalar::utf8_encode called on read only scalar"); + sv_utf8_encode (scalar); if (GIMME_V != G_VOID) XPUSHs (sv_2mortal (SvREFCNT_inc (scalar)));