delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mail set sender to geda-user-bounces using -f |
X-Recipient: | geda-user AT delorie DOT com |
Date: | Wed, 16 Aug 2017 10:03:50 +0200 (CEST) |
X-X-Sender: | igor2 AT igor2priv |
To: | geda-user AT delorie DOT com |
X-Debug: | to=geda-user AT delorie DOT com from="gedau AT igor2 DOT repo DOT hu" |
From: | gedau AT igor2 DOT repo DOT hu |
Subject: | [geda-user] Re: [dev] FYI: pcb(-rnd) internals: explanation on |
type/ptr1/ptr2/ptr3 | |
In-Reply-To: | <alpine.DEB.2.00.1708160918250.27212@igor2priv> |
Message-ID: | <alpine.DEB.2.00.1708161000120.27212@igor2priv> |
References: | <alpine DOT DEB DOT 2 DOT 00 DOT 1708160918250 DOT 27212 AT igor2priv> |
User-Agent: | Alpine 2.00 (DEB 1167 2008-08-23) |
MIME-Version: | 1.0 |
Reply-To: | geda-user AT delorie DOT com |
Errors-To: | nobody AT delorie DOT com |
X-Mailing-List: | geda-user AT delorie DOT com |
X-Unsubscribes-To: | listserv AT delorie DOT com |
Forgot an important point: > Reason #5: since these assumptions about the tree are hardwired everywhere, > it's rather hard to make upgrades to the tree (like the groupping concept > subcircuits introduced in pcb-rnd, or just adding yet another object type). > It's especially too easy to miss a new possible combination of ptr1/ptr2 in > one of those many calls. For a long time this was one of the main reasons I > didn't start the data model cleanup in pcb-rnd. Reason #6: if you have a totally valid pointer to an object you obtained by anything else than a top-down search on the tree, you can't call the functions, because you have no idea what Ptr1 (the parent) should be. The workaround is: - either to not obtain (save, store, pass) objects without always starting with a top-down search first - or if you ended up with an object like that, just try to repeat a top-down search for that specific object only to figure Ptr1 Needless to say, both workarounds are slow (run-time penalty) and make the code needlessly complicated and somewhat harder to understand (coding-time penalty).
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |