From: Markus S. <mar...@jt...> - 2003-05-01 00:28:38
|
Another reply to myself... I am struggling to define the semantics for the C API UReplaceable close function; for example, a user should probably never free() the "object" even if the close function pointer is NULL... Anyway, the C UReplaceable only exists to facilitate the C Transliterator API (utrans.h), and a transliteration/transform operation will never clone its replaceable. The UReplaceable is likely statically or stack-allocated. So, the clone() seems pointless for this C API. Just extra work right now... Therefore, I retract my proposals for new UReplaceable clone/close functions for now and will implement clone() only for the C++ Replaceable class tree. markus Markus Scherer wrote: > Markus Scherer wrote: > >> UReplaceableCallbacks will get: >> >> UReplaceable * (*clone)(const UReplaceable* rep); > > It turns out that for this to work in the C API, one has to be able to > get rid of the clone. However, the UReplaceableCallbacks struct does not > currently contain a "destructor" function pointer. Therefore, I also > propose: > > void (*close)(UReplaceable* rep); > > markus |