[OPEN-ILS-DEV] PATCH: oils_utils.[ch] (const-correctness)

Scott McKellar mck9 at swbell.net
Wed Nov 21 00:23:14 EST 2007


This patch applies the const qualifier to various things:

1. To a number of function parameters.

2. To a couple of local variables, so that we can eventually change
jsonObjectGetString() so as to return a const pointer, as it should.

3. To the pointer returned by oilsFMGetObject().

The last change may be a bit controversial because it restricts
the future use of this function -- i.e. the pointer it returns
may not be used to change the jsonObject to which it points.

As it happens, in no case do we use the returned pointer to change
the referenced jsonObject.  In an earlier patch I tweaked
oils_requestor.c to assign the return value to a const pointer
instead of a non-const pointer, but no other changes are needed to
accommodate the constness.

The reason for this change is that the pointer returned is obtained
from a call to jsonObjectGetIndex(), which itself should return
a const pointer (though it doesn't yet).

If the constness proves too restrictive, we can revisit the matter
or find a workaround.  If all else fails we can use an evil cast
somewhere.  In practice I doubt that the issue will arise.

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: oils_utils_h_1.patch
Type: text/x-patch
Size: 4610 bytes
Desc: 648916071-oils_utils_h_1.patch
Url : http://list.georgialibraries.org/pipermail/open-ils-dev/attachments/20071120/8861ab36/oils_utils_h_1.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: oils_utils_c_1.patch
Type: text/x-patch
Size: 6878 bytes
Desc: 978186118-oils_utils_c_1.patch
Url : http://list.georgialibraries.org/pipermail/open-ils-dev/attachments/20071120/8861ab36/oils_utils_c_1.bin


More information about the Open-ils-dev mailing list