]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blobdiff - lib/Variable/Magic.pm
Fix segfaults when using get or uvar magic simultaneously with clear magic
[perl/modules/Variable-Magic.git] / lib / Variable / Magic.pm
index 70dff80801e7c27f31e022c022b759b4c475042d..a94fbe377ca5c3c2956c68e4f1210544f07070ef 100644 (file)
@@ -278,19 +278,20 @@ BEGIN {
 
 =head2 C<wizard>
 
-    wizard sig    => ...,
-           data   => sub { ... },
-           get    => sub { my ($ref, $data) = @_; ... },
-           set    => sub { my ($ref, $data) = @_; ... },
-           len    => sub { my ($ref, $data, $len) = @_; ... ; return $newlen; },
-           clear  => sub { my ($ref, $data) = @_; ... },
-           free   => sub { my ($ref, $data) = @_, ... },
-           copy   => sub { my ($ref, $data, $key, $elt) = @_; ... },
-           local  => sub { my ($ref, $data) = @_; ... },
-           fetch  => sub { my ($ref, $data, $key) = @_; ... },
-           store  => sub { my ($ref, $data, $key) = @_; ... },
-           exists => sub { my ($ref, $data, $key) = @_; ... },
-           delete => sub { my ($ref, $data, $key) = @_; ... }
+    wizard sig      => ...,
+           data     => sub { ... },
+           get      => sub { my ($ref, $data) = @_; ... },
+           set      => sub { my ($ref, $data) = @_; ... },
+           len      => sub { my ($ref, $data, $len) = @_; ... ; return $newlen; },
+           clear    => sub { my ($ref, $data) = @_; ... },
+           free     => sub { my ($ref, $data) = @_, ... },
+           copy     => sub { my ($ref, $data, $key, $elt) = @_; ... },
+           local    => sub { my ($ref, $data) = @_; ... },
+           fetch    => sub { my ($ref, $data, $key) = @_; ... },
+           store    => sub { my ($ref, $data, $key) = @_; ... },
+           exists   => sub { my ($ref, $data, $key) = @_; ... },
+           delete   => sub { my ($ref, $data, $key) = @_; ... },
+           copy_key => $bool
 
 This function creates a 'wizard', an opaque type that holds the magic information.
 It takes a list of keys / values as argument, whose keys can be :
@@ -461,8 +462,6 @@ The only way to address this would be to return a reference.
 
 If you define a wizard with a C<free> callback and cast it on itself, this destructor won't be called because the wizard will be destroyed first.
 
-Using simultaneously C<get> and C<clear> magics on hashes may cause segfaults.
-
 =head1 DEPENDENCIES
 
 L<perl> 5.7.3.