Return-Path: Delivered-To: apmail-perl-dev-archive@www.apache.org Received: (qmail 72407 invoked from network); 27 Nov 2004 18:01:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 27 Nov 2004 18:01:42 -0000 Received: (qmail 76278 invoked by uid 500); 27 Nov 2004 18:01:41 -0000 Delivered-To: apmail-perl-dev-archive@perl.apache.org Received: (qmail 76259 invoked by uid 500); 27 Nov 2004 18:01:40 -0000 Mailing-List: contact dev-help@perl.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Delivered-To: mailing list dev@perl.apache.org Received: (qmail 76239 invoked by uid 99); 27 Nov 2004 18:01:40 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Received: from mail.logilune.com (HELO mail.logilune.com) (195.80.154.36) by apache.org (qpsmtpd/0.28) with ESMTP; Sat, 27 Nov 2004 10:01:38 -0800 Received: from [127.0.0.1] (localhost.logilune.com [127.0.0.1]) by mail.logilune.com (Postfix) with ESMTP id 215971E1CD2; Sat, 27 Nov 2004 19:01:35 +0100 (CET) Message-ID: <41A8C0FE.7020905@stason.org> Date: Sat, 27 Nov 2004 13:01:34 -0500 From: Stas Bekman Organization: Hope, Humanized User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20040913 X-Accept-Language: en-us, en, he, ru MIME-Version: 1.0 Cc: Joe Schaefer , dev@perl.apache.org Subject: Re: [mp2] pools that go out of scope aren't a problem anymore? References: <41A60A95.6010904@stason.org> <87fz2x4qu0.fsf@gemini.sunstarsys.com> <41A6411A.3010308@stason.org> <878y8p4p2n.fsf@gemini.sunstarsys.com> <41A66AEA.6090101@stason.org> <41A7A73C.8020701@stason.org> <41A7C343.4010703@stason.org> In-Reply-To: <41A7C343.4010703@stason.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Stas Bekman wrote: [...] > So trying to go the way Joe has chosen for apreq, I've replaced the > plain apr_table_make autogenerated wrapper with explicit: > > static MP_INLINE SV *mpxs_APR__Table_make(pTHX_ SV *p_sv, int nelts) > { > apr_pool_t *p = mp_xs_sv2_APR__Pool(p_sv); > apr_table_t *t = apr_table_make(p, nelts); > SV *t_sv = mp_xs_APR__Table_2obj(t); > sv_magic(SvRV(t_sv), p_sv, PERL_MAGIC_ext, Nullch, -1); > return t_sv; > } That code wasn't correct, the good one is: Index: xs/maps/apr_functions.map =================================================================== --- xs/maps/apr_functions.map (revision 106595) +++ xs/maps/apr_functions.map (working copy) @@ -244,7 +244,8 @@ MODULE=APR::Table apr_table_clear apr_table_copy | | t, p - apr_table_make +~apr_table_make + mpxs_APR__Table_make apr_table_overlap apr_table_overlay | | base, overlay, p apr_table_compress Index: xs/APR/Table/APR__Table.h =================================================================== --- xs/APR/Table/APR__Table.h (revision 106595) +++ xs/APR/Table/APR__Table.h (working copy) @@ -17,6 +17,17 @@ #define mpxs_APR__Table_DELETE apr_table_unset #define mpxs_APR__Table_CLEAR apr_table_clear + +static MP_INLINE SV *mpxs_APR__Table_make(pTHX_ SV *p_sv, int nelts) +{ + apr_pool_t *p = mp_xs_sv2_APR__Pool(p_sv); + apr_table_t *t = apr_table_make(p, nelts); + SV *t_sv = modperl_hash_tie(aTHX_ "APR::Table", Nullsv, t); + sv_magic(SvRV(t_sv), p_sv, PERL_MAGIC_ext, Nullch, -1); + return t_sv; +} + + typedef struct { SV *cv; apr_hash_t *filter; We need to figure out how to automate this. -- __________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:stas@stason.org http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org For additional commands, e-mail: dev-help@perl.apache.org