[Libreoffice] semantics of ScBaseCell* lclCloneCell

Kevin Hunter hunteke at earlham.edu
Thu Oct 27 10:53:26 PDT 2011


At 2:49am -0400 Thu, 27 Oct 2011, Stephan Bergmann wrote:
> On 10/27/2011 07:10 AM, Kevin Hunter wrote:
>> I'm nosing around ScBaseCell in sc/source/core/data/cell.cxx, and I'm
>> curious about the semantics of the function lclCloneCell. Specifically,
>> when would that function ever return a NULL pointer? Does Calc not know
>> about all its cell types? Perhaps extensions are able to add their own
>> cell types and still use this function? (Then why would they use this
>> function?!)
>
> Not an sc expert, but from looking at the code it looks to me like the
> default case shall never be reached, but is there to (a) silence
> compiler warnings and (b) fire an OSL_FAIL in case there is a
> programming error that causes the case to be reached nonetheless (I
> usually put a "this cannot happen" into such OSL_FAILs, in good old
> Knuth tradition). And since the function still needs to syntactically
> return something, even in this "unreachable" case, it returns the
> canonic null value.

Huh.  Then why use a switch?  Why not use an if-else set of clauses?  I 
recognize that this function may be called a lot, but does an if vs 
switch statement mean /that/ much in terms of performance?

In any event, thanks for the response.

Kevin


More information about the LibreOffice mailing list