]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/external.pm
memoization for injected RPC functions is a very, very good thing
[ikiwiki.git] / IkiWiki / Plugin / external.pm
index e3504a30d510b83124516171a307b0a5656488cb..9c31a70eba89edd5e4f5ba9ad2ef6ccc72e29c8d 100644 (file)
@@ -107,6 +107,7 @@ sub rpc_call ($$;@) { #{{{
 } #}}}
 
 package IkiWiki::RPC::XML;
 } #}}}
 
 package IkiWiki::RPC::XML;
+use Memoize;
 
 sub getvar ($$$) { #{{{
        my $plugin=shift;
 
 sub getvar ($$$) { #{{{
        my $plugin=shift;
@@ -142,6 +143,7 @@ sub inject ($@) { #{{{
                IkiWiki::Plugin::external::rpc_call($plugin, $params{call}, @_)
        };
        eval qq{*$params{name}=\$sub};
                IkiWiki::Plugin::external::rpc_call($plugin, $params{call}, @_)
        };
        eval qq{*$params{name}=\$sub};
+       memoize($params{name}) if $params{memoize};
        return 1;
 } #}}}
 
        return 1;
 } #}}}