/[Apache-SVN]/perl/modperl/trunk/lib/ModPerl/WrapXS.pm
ViewVC logotype

Diff of /perl/modperl/trunk/lib/ModPerl/WrapXS.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

--- perl/modperl/trunk/lib/ModPerl/WrapXS.pm	2005/03/02 03:29:42	155862
+++ perl/modperl/trunk/lib/ModPerl/WrapXS.pm	2005/03/02 03:32:35	155863
@@ -256,6 +256,37 @@ $attrs
 
 EOF
             }
+            elsif ($access_mode eq 'r+w_startup_dup') {
+
+                my $convert = $cast !~ /\bchar\b/
+                    ? "mp_xs_sv2_$cast"
+                    : "SvPV_nolen";
+
+                $code = <<EOF;
+$type
+$name(obj, val=Nullsv)
+    $class obj
+    SV *val
+
+    PREINIT:
+    $preinit
+$attrs
+
+    CODE:
+    RETVAL = ($cast) obj->$name;
+
+    if (items > 1) {
+         SV *dup = get_sv("_modperl_private::server_rec_$name", TRUE);
+         MP_CROAK_IF_THREADS_STARTED("setting $name");
+         sv_setsv(dup, val);
+         obj->$name = ($cast)$convert(dup);
+    }
+
+    OUTPUT:
+    RETVAL
+
+EOF
+            }
             elsif ($access_mode eq 'rw_char_undef') {
                 my $pool = $e->{pool} 
                     or die "rw_char_undef accessors need pool";

 

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26