[GRASS-dev] r56095 broke vector libs

Markus Metz markus.metz.giswork at gmail.com
Mon May 13 03:46:36 PDT 2013


On Mon, May 13, 2013 at 12:36 PM, Martin Landa <landa.martin at gmail.com> wrote:
> Hi,
>
> 2013/5/13 Martin Landa <landa.martin at gmail.com>:
>> 2013/5/13 Markus Metz <markus.metz.giswork at gmail.com>:
>>> PLEASE test before committing changes. Or carefully read the current
>>> code base. For future reference: vector topology is optional and reset
>>> if no topology is required. That means you should NOT store
>>> non-topological information in topological structures. Thanks.
>>
>> sorry for inconvenience, could you be more specific? What exactly
>> broke the vector libs? Do you mean `version` struct? My attempt was to
>> make the current data structures more understandable for the
>> programmers.
>
> OK, from your commit I can understand the issue. I hope that even with
> my fault the result is valuable. Thanks for the fix.

As I said, the issue was that vector topology is optional and reset if
no topology is required. That means you should NOT store
non-topological information in topological structures. Topological
information, and topological information only, is stored in struct
Plus_head. You have yourself modified the code to reset struct
Plus_head, interestingly with the same commit where you added non-topo
info to struct Plus_head.

These version informations about internal structures are only of
interest for programmers working with the deep internals of the vector
libs (diglib).
Having e.g. 'cidx_Version_Major' or 'version.cidx.major' is mainly a
matter of taste. You have now added a structure inside a structure
inside a structure. IMHO this is not more, but less understandable.
This stuff should not be touched lightly anyway, so it can stay as it
is. Maybe touch again for GRASS 8...

Markus M


More information about the grass-dev mailing list