[geos-devel] Re: Memory leak in RelateComputer?
wang.yongjie.2008 at gmail.com
Thu May 8 22:33:59 EDT 2008
I am sorry to send the mail without subject modified just now.
> Message: 2
> Date: Thu, 08 May 2008 05:37:19 +0200
> From: Mateusz Loskot <mateusz at loskot.net>
> Subject: Re: [geos-devel] Re: Memory leak in RelateComputer?
> To: GEOS Development List <geos-devel at lists.osgeo.org>
> Message-ID: <4822756F.4070502 at loskot.net>
> Content-Type: text/plain; charset=ISO-2022-JP
> First, you should know that modifying a single class in GEOS is not that
> easy as it seems. There are rich and complex relations between GEOS
> types. I've not analysed this particular issue deeply, so I can't answer
> how to solve it better.
I totally understand.
> However, there are a few solutions potentially possible:
> 1. Use lazy allocation of matrix, means to not allocate the matrix in
> the RelateComputer ctor but to allocate it on request, when the computer
> is asked for it.
> 2. Make RelateComputer an exclusive owner of the matrix, and destroy it
> in the dctor. Then, RelateComputer could give access to immutable matrix
> by reference to const (not pointer!).
> 3. Introduce shared ownership by wrapping the matrix object with smart
> pointer implementing shared resource semantic (ie. boost::shared_ptr).
> The 3rd option *seems* to fit best in this case.
I think the first method is the best to solve this problem, it's simple and
easy to implement and the interface of RelateComputer needn't to alter.
> I'm not eager to alter any patterns and semantics currently implemented
> without a wider discussion. I think changes of that kind are serious and
> should follow submission of Request For Comments (RFC) document,
> discussed and voted by the GEOS PSC.
> The PSC has just formed and we have not started up yet.
> For now, we have to remember how to properly use RelateComputer to avoid
> memory leaks.
I agree with you.
It's very kind of you to do me a favor.
Thanks for your help.
Best regards to you.
- Hide quoted text -
Tel: +86(10)8282 5800 Ext. 8411
Fax: +86(10)8282 5816
Email: yongjiemail at gmail.com
MSN/Gtalk: yongjiemail at gmail.com
More information about the geos-devel