On Aug 15, 2008, at 11:21 AM, Maximilian Albert wrote:
> Hi all,
> there is a large chunk of code (~ 130 lines) that is essentially
> duplicated in both dyna-draw-context.cpp and eraser-context.cpp,
> the function fit_and_split(). The two versions only really differ in a
> few lines, but they also contains a couple of #ifdef switches that are
> used for debugging. The problem is that these are also dependent on
> file (to wit, #ifdef ERASER_VERBOSE and #ifdef DYNA_DRAW_VERBOSE). I
> believe it would make sense to melt these two functions together, but
> how can this be done while at the same time respecting the #ifdefs? Is
> there a kind of #or directive?
> P.S.: It just occurred to me that the two contexts might share other
> code, too (although I haven't checked). Perhaps they could even be
> merged to a larger extent.
Actually what happened is that the eraser code was copied from the
dyna-draw code. Then as we go that is being refactored, with common
code going into a common base class and the specific code being
retuned and left different in each of the two original classes
So yes, you did spot a bit of duplication that needs refactoring.
However it is an area that I'm working on incrementally, so you won't
have to do direct cleanup yourself.