[postgis-devel] getPoint2d_p

Mark Cave-Ayland mark.cave-ayland at siriusit.co.uk
Sun Dec 14 13:27:27 PST 2008


Paul Ramsey wrote:

> I'm looking at the simple distance calculating function, and I see this:

(lots cut)

> We're just reading, why the memcpy? Sure, it's pretty darn fast, hand
> optimized assembler by the gods of gcc and all that, but surely it
> would nicer to just get a pointer into a structure.
> 
> All this derives from having our point arrays stored in "uchar
> *serialized_pointlist" the primary advantage being ... ? Comments say
> that we don't have to worry about 2/3/4D. OK, I can see that. But...
> wouldn't an "double *pointlist" work even better? We could reference
> into it with accessors just as currently, but we wouldn't need the
> memcpy.

I'm fairly sure it was there to allow access to unaligned data (i.e. not 
on a word boundary).

> I'm still grasping at this stuff, deeper thoughts desperately wanted.
> 
> BTW, I'm doing a project that involves some simple computational
> geometry and implementing some extra primitives native to PostGIS, and
> building unit tests with cunit (I feel much more confident testing
> each little block of code along the way). Unfortunately I'm building
> against 1.3, which makes things well-nigh impossible. I think I might
> have to flip this project around and develop on 1.4 using liblwgeom,
> then back-port for the client, or I'll be spending all my time
> scabbing bits of liblwgeom into my framework instead of working on the
> actual code.
> 
> P.

Yup indeed. I've been a complete 1.4 convert for several months now, 
mainly because the debugging capability is so much superior. So I tend 
to do all the hard digging/tracing in trunk and then backpatch to 1.3 
when I'm done.


ATB,

Mark.

-- 
Mark Cave-Ayland
Sirius Corporation - The Open Source Experts
http://www.siriusit.co.uk
T: +44 870 608 0063



More information about the postgis-devel mailing list