[OPEN-ILS-DEV] PATCH: osrf_router.c (const-correctness)

Scott McKellar mck9 at swbell.net
Sun Mar 16 23:32:05 EDT 2008


This patch applies the const qualifier to several variables, each of
them a copy of the "current" member of an osrfHashIterator.

---------------

While this patch is pretty inconsequential on its own, it is part of a
larger plan to streamline the use of osrfHashIterators.

The "current" member points to a dynamically allocated string.  Every 
time we advance the iterator, we free the string and allocate another
one to replace it.

My plan is to reuse the buffer whenever possible so as to reduce the
churning of memory through malloc() and free().  This approach will
require an additional member to keep track of the current capacity of
the buffer, rather like the "size" member of a growing_buffer.

It will also require that all code using osrfHashIterators treat the
"current" member as read-only.  If somebody frees and replaces the
buffer outside of the proper interface, then buffer management will
get very confused.

I doubt that any code does anything so perfidious, but I'm going 
through the files to make sure.  Adding the const qualifier is an
easy way not only to verify that nothing bad is happening, but also
to make it less likely that something bad will happen in the future.

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

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: osrf_router_c_4.patch
Type: text/x-patch
Size: 2342 bytes
Desc: 21948762-osrf_router_c_4.patch
Url : http://list.georgialibraries.org/pipermail/open-ils-dev/attachments/20080316/9455b860/osrf_router_c_4.bin


More information about the Open-ils-dev mailing list