Re: initialization of XXX_COOKIE in C source files
On May 10, 2008, at 6:08 PM, Lisandro Dalcin wrote:
I've noticed that in 2.3.3 all PETSc cookies are initialized to zero in sources, but in DEV they are not initialized. What's the reason of ^^^^^^^^^^^^^^^^ You are quick, I just pushed the change last night.
The reason why they where all initialized to zero was because - a very long time ago all the cookies where hardwired numbers that we chose for each new class - then we added the ability to request a cookie, but still support the old hardwired version. Passing in a pointer to a zero value meant you were requesting one, passing in a pointer to a nonzero one meant that the cookie had a hardwired value. - over time all the hardwired ones were unhardwired, but the convention of initializing them to zero before hand was never changed. There was some convoluted logic for why the PetscEvent values were all initialized to zero also. When fixing up the events I also fixed the cookies The reason is Barry's rule # 54, "nothing should be done in a code without a reason, otherwise it will be confusing to others looking at the code." For example, even now, whenever anybody made some new events they initialized them to zero, why? Not because they need to be, but simply because they were in code the developer copied from. Were you taking advantage of their initialization to zero? If so, rather than depending on each cookie being initialized to zero I would suggest handling this type of "check if initialized" stuff at a package by package level or library by library level. Please let me know what you need. Barry
this change?
-- Lisandro Dalc�n --------------- Centro Internacional de M�todos Computacionales en Ingenier�a (CIMEC) Instituto de Desarrollo Tecnol�gico para la Industria Qu�mica (INTEC) Consejo Nacional de Investigaciones Cient�ficas y T�cnicas (CONICET) PTLC - G�emes 3450, (3000) Santa Fe, Argentina Tel/Fax: +54-(0)342-451.1594
participants (1)
-
Barry Smith