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

Dan Scott denials at gmail.com
Fri Nov 23 10:09:57 EST 2007


On 21/11/2007, Scott McKellar <mck9 at swbell.net> wrote:
> 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.
>

Just a thumbs-up to these patches - they apply cleanly and appear to
work well with the limited testing I've done so far. Thanks Scott!

-- 
Dan Scott
Laurentian University


More information about the Open-ils-dev mailing list