Re: DrawContext -- reports on self?

[email protected] Mon, 29 Aug 2011 04:54:55 +0000
Newsgroups gmane.comp.video.graphicsmagick.apis
Message-ID <[email protected]>
On Mon, Aug 29, 2011 at 04:29:09AM +0000, [email protected] wrote:
> On Sun, Aug 28, 2011 at 11:24:27PM -0500, Bob Friesenhahn wrote:
> > On Mon, 29 Aug 2011, [email protected] wrote:
> >> Hrmm... so I should:
> >>
> >> DrawContext *dc;
> >> dc=DrawAllocateContext(); /* like this? */
> >
> > No, because DrawContext is already a pointer.
> >
> >> I was having a tough time w/ leaks and core dumps w/ my various attempts... am currently:
> >>
> >> DrawContext dc;
> >> dc=DrawAllocateContext(); /* this is leak-free, crash-free */
> >
> > Looks better.
> >
> >> but my tests: if(!dc) { // no draw context... } were not working like I expected.
> >
> > It seems like that should work.  However, if the DrawContext is not  
> > immediately allocated via DrawAllocateContext(), then it is safest to  
> > allocate it like
> >
> > DrawContext dc = (DrawContext) NULL;
> >
> > so it has a known initial value.  Also, if you destroy and re-use the  
> > same context, then it could have a pointer value for the previously  
> > destroyed context since DrawDestroyContext() does not change the passed 
> > pointer value.
> 
> ^--- this might have been what stung me. I'll work with what you've
> described here; I was initializing to NULL until I had an image
> (otherwise fails w/ assert()), but was probably expecting more w/
> the Destroy()... and was a bit confused by it's pointerness, but not
> stored in a pointer. I saw the MagickMalloc() (might be wrongname)
> and freeing... but didn't fully understand how to treat the handle.
> 
> Thanks for the reply :)

I think my prev. attempt was correct, but slightly lacking; Careful
recoding == success.

Thx Bob,

-bch

> -bch
> 
> > A complex example (which is part of the test suite) may be seen in  
> > Mercurial at
> >
> > http://graphicsmagick.hg.sourceforge.net/hgweb/graphicsmagick/graphicsmagick/file/775816effda4/tests/drawtest.c
> >
> > This one does not have leaks or crash.
> >
> > Bob
> > -- 
> > Bob Friesenhahn
> > [email protected], http://www.simplesystems.org/users/bfriesen/
> > GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/
> 
> -- 
> Brad Harder
> Method Logic Digital Consulting
> http://methodlogic.net/
> http://twitter.com/bcharder
> 
> 
> ------------------------------------------------------------------------------
> EMC VNX: the world's simplest storage, starting under $10K
> The only unified storage solution that offers unified management 
> Up to 160% more powerful than alternatives and 25% more efficient. 
> Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
> _______________________________________________
> Graphicsmagick-apis mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/graphicsmagick-apis

-- 
Brad Harder
Method Logic Digital Consulting
http://methodlogic.net/
http://twitter.com/bcharder


------------------------------------------------------------------------------
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management 
Up to 160% more powerful than alternatives and 25% more efficient. 
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev