[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Change #8: Single point of editor creation (was Re: editor functions)

From: Ben Collins-Sussman <sussman_at_newton.collab.net>
Date: 2001-01-24 17:08:48 CET

Change #8: Single point of editor creation

Status Quo:
   
     Each editor "implementation" allocates its own static editor
     structure.

Proposed Change:

     In the delta library, a single routine returns a "dummy" editor
     structure full of dummy pointers. The editor-implementor then
     fills only the pointers it cares about.
   
     (See jimb's description at the bottom of this message)

Rationale:

     Easy to extend the editor when we need to; no more re-writing of
     every editor implementation every time we do so.

     Because it's a C struct, we should also remain backwards
     binary-compatible if we keep slapping fields onto the end. :)

Jim Blandy <jimb@zwingli.cygnus.com> writes:

>
> Instead, libsvn_delta should provide the following function:
>
> /* Allocate and return a new function table for the `dummy' editor ---
> one which ignores every function called on it. This editor uses
> the null pointer for all its batons. All function pointers are
> initialized to dummy functions. You needn't test whether a
> function pointer is non-zero before using it --- you can just call
> the function.
>
> Real editors should construct their own function tables by calling
> this function, and then installing pointers to their own functions
> for the editor operations they care about. This rule allows us to
> extent svn_delta_edit_fns_t with new functions without having to
> change the code for all the editors that don't care about the new
> function.
>
> Allocate the function table in POOL. */
> svn_delta_edit_fns_t *svn_delta_make_edit_fns (apr_pool_t *pool);
Received on Sat Oct 21 14:36:19 2006

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.