avoid strange FreeBSD problem
authorJoey Hess <joey@kodama.kitenet.net>
Mon, 5 May 2008 18:50:26 +0000 (14:50 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Mon, 5 May 2008 18:50:26 +0000 (14:50 -0400)
<mxey> I have a weird problem with Ikiwiki on FreeBSD: When rendering this page <http://rafb.net/p/zmfROX86.html>, I get "ikiwiki.setup: Modification of a read-only value attempted at /usr/local/lib/perl5/site_perl/5.8.8/IkiWiki.pm line 1300.".

And converting the constructors to not operate on the parameters directly
but use lexical variables fixed it. Not sure exactly when this occurs.

IkiWiki.pm

index f5cf8ba96bbc8d61a6e801d9058e13955e5108c6..98145a585efda00b7110db7762b3be7106c169c9 100644 (file)
@@ -1287,7 +1287,9 @@ use overload ( #{{{
 ); #}}}
 
 sub new { #{{{
-       return bless \$_[1], $_[0];
+       my $class = shift;
+       my $value = shift;
+       return bless \$value, $class;
 } #}}}
 
 package IkiWiki::SuccessReason;
@@ -1300,7 +1302,9 @@ use overload ( #{{{
 ); #}}}
 
 sub new { #{{{
-       return bless \$_[1], $_[0];
+       my $class = shift;
+       my $value = shift;
+       return bless \$value, $class;
 }; #}}}
 
 package IkiWiki::PageSpec;