I see a lot of aspects in the NSS code, which would greatly benefit 
(readability, maintainability, etc) from a trivial refactoring.

Here are a few trivial examples (NSS):

-- 123 occurrences of code like
      | sizeof(longUnreadableName)/sizeof(*longUnreadableName)
   Much more readable:
      | PR_ARRAY_SIZE( longUnreadableName )

-- a lot of code like this:
      | ((a->b.c + 7) >> 3)
   Much better:
      | BITS_TO_OCTETS( a->b.c )

-- loader.c duplicates the code below ~ 180 times (!!!):
      | if (!vector && PR_SUCCESS != freebl_RunLoaderOnce())
      |   return rv;
   Much better: #define LDVEC(rv) ...

-- every BLAPI function has two declarations:
   blapi.h:
      | extern SECStatus DH_Derive(SECItem * publicValue, SECItem * prime,
      |      SECItem *privateValue, SECItem *derivedSecret, unsigned int 
maxOutBytes);
   loader.h, copy-pasted declaration:
      | SECStatus (* p_DH_Derive)(SECItem * publicValue, SECItem *prime,
      |      SECItem *privateValue, SECItem *derivedSecret, unsigned int 
maxOutBytes );

   Much better: typedef DH_DeriveFN; DH_DeriveFN DH_Derive, *p_DH_Derive;

Etc, etc...

The question is: will the patch, which addresses the aspect like above, be 
accepted ? What is the policy?

I am especially curious, because Wan-Teh specially warned me [bug 654436] from supplying 
patch for the 1st ( "sizeof/sizeof" ) example.

Keep well, Konstantin.
--
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to