[OPEN-ILS-DEV] PATCH: transport_client.c (pedantic)

Scott McKellar mck9 at swbell.net
Sun May 27 10:37:49 EDT 2007


This patch is mostly pedantic.

1, I explicitly initialized two pointers to NULL.  The current code
does not initialize them at all, except that safe_malloc() fills them
with binary zeros -- which is equivalent to NULL on most systems but
not all.

2. I eliminated the casts on the return values from safe_malloc().
Such casts clutter up the code to no purpose, and introduce a small
but needless risk.

The casts are not necessary because a void pointer may safely be
converted, without a cast, to a pointer to any datatype.  There 
may be alignment issues (though not in this case), but a cast does
not solve that problem anyway.

The casts are risky because, if a prototype or declaration for
safe_malloc() is not in scope, the compiler will assume that this
function returns an int rather than a void *.  If there is no cast,
the compiler will notice the type mismatch in the assignment and
issue a diagnostic, thereby alerting you that you left out an
#include.  However if you include the cast, the compiler will
silently perform a conversion that may not work on some 
architectures.

Scott McKellar
http://home.swbell.net/mck9/aargh/

Developer’s Certificate of Origin 1.1 By making a contribution to
this project, I certify that:

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license indicated
in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source license
and I have the right under that license to submit that work with
modifications, whether created in whole or in part by me, under the
same open source license (unless I am permitted to submit under a
different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person
who certified (a), (b) or (c) and I have not modified it; and

(d) In the case of each of (a), (b), or (c), I understand and agree
that this project and the contribution are public and that a record
of the contribution (including all personal information I submit
with it, including my sign-off) is maintained indefinitely and may
be redistributed consistent with this project or the open source
license indicated in the file.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: transport_client_c_1.patch
Type: text/x-patch
Size: 1350 bytes
Desc: 1539738649-transport_client_c_1.patch
Url : http://list.georgialibraries.org/pipermail/open-ils-dev/attachments/20070527/b333f68a/transport_client_c_1.bin


More information about the Open-ils-dev mailing list