[PATCH:twm] Add some const.
Alan Coopersmith
alan.coopersmith at oracle.com
Sat Sep 26 10:00:08 PDT 2015
Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>
for both patches.
-alan-
On 09/23/15 11:54 AM, Thomas Klausner wrote:
> Ah, good catch. I've attached a cleanup patch for that.
> Thomas
>
>
> On Wed, Sep 23, 2015 at 11:38:02AM -0700, Jasper St. Pierre wrote:
>> I was imagining that it might be used like:
>>
>> char *foo = ExpandFilename(name);
>> ...
>> if (foo != name)
>> free(foo);
>>
>> ... which would still work, but the != is now dead code. If callers
>> were unconditionally freeing before, I heavily suspect something more
>> serious here.
>>
>> On Wed, Sep 23, 2015 at 9:30 AM, Thomas Klausner <wiz at netbsd.org> wrote:
>>> Well, yes, but for context, here is the full function after the change:
>>>
>>> char *
>>> ExpandFilename(const char *name)
>>> {
>>> char *newname;
>>>
>>> if (name[0] != '~') return strdup(name);
>>>
>>> newname = malloc (HomeLen + strlen(name) + 2);
>>> if (!newname) {
>>> fprintf (stderr,
>>> "%s: unable to allocate %ld bytes to expand filename %s/%s\n",
>>> ProgramName, HomeLen + (unsigned long)strlen(name) + 2,
>>> Home, &name[1]);
>>> } else {
>>> (void) sprintf (newname, "%s/%s", Home, &name[1]);
>>> }
>>>
>>> return newname;
>>> }
>>>
>>> So in other words, now the function is consistent in returning a
>>> malloc()ed string when it succeeds.
>>> Thomas
>>>
>>> On Wed, Sep 23, 2015 at 08:59:22AM -0700, Jasper St. Pierre wrote:
>>>> Should also mention that it also adds a strdup -- I feel that the code
>>>> calling this might conditionally free. Would be nice to double-check
>>>> callers.
>>>>
>>>> On Wed, Sep 23, 2015 at 1:58 AM, Thomas Klausner <wiz at netbsd.org> wrote:
>>>>> From: Christos Zoulas <christos at NetBSD.org>
>>>>>
>>>>> Signed-off-by: Thomas Klausner <wiz at NetBSD.org>
>>>>> ---
>>>>> src/util.c | 4 ++--
>>>>> src/util.h | 2 +-
>>>>> 2 files changed, 3 insertions(+), 3 deletions(-)
>>>>>
>>>>> diff --git a/src/util.c b/src/util.c
>>>>> index 4b94051..5e8f0db 100644
>>>>> --- a/src/util.c
>>>>> +++ b/src/util.c
>>>>> @@ -256,11 +256,11 @@ Zoom(Window wf, Window wt)
>>>>> * \param name the filename to expand
>>>>> */
>>>>> char *
>>>>> -ExpandFilename(char *name)
>>>>> +ExpandFilename(const char *name)
>>>>> {
>>>>> char *newname;
>>>>>
>>>>> - if (name[0] != '~') return name;
>>>>> + if (name[0] != '~') return strdup(name);
>>>>>
>>>>> newname = malloc (HomeLen + strlen(name) + 2);
>>>>> if (!newname) {
>>>>> diff --git a/src/util.h b/src/util.h
>>>>> index 7f4527c..4b2d3a8 100644
>>>>> --- a/src/util.h
>>>>> +++ b/src/util.h
>>>>> @@ -64,7 +64,7 @@ in this Software without prior written authorization from The Open Group.
>>>>> extern void MoveOutline ( Window root, int x, int y, int width, int height,
>>>>> int bw, int th );
>>>>> extern void Zoom ( Window wf, Window wt );
>>>>> -extern char * ExpandFilename ( char *name );
>>>>> +extern char * ExpandFilename ( const char *name );
>>>>> extern void GetUnknownIcon ( const char *name );
>>>>> extern Pixmap FindBitmap ( const char *name, unsigned int *widthp,
>>>>> unsigned int *heightp );
>>>>> --
>>>>> 2.5.2
>>>>>
>>>>> _______________________________________________
>>>>> xorg-devel at lists.x.org: X.Org development
>>>>> Archives: http://lists.x.org/archives/xorg-devel
>>>>> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>>>>
>>>>
>>>>
>>>> --
>>>> Jasper
>>>>
>>
>>
>>
>> --
>> Jasper
>>
>>
>>
>> _______________________________________________
>> xorg-devel at lists.x.org: X.Org development
>> Archives: http://lists.x.org/archives/xorg-devel
>> Info: http://lists.x.org/mailman/listinfo/xorg-devel
--
-Alan Coopersmith- alan.coopersmith at oracle.com
Oracle Solaris Engineering - http://blogs.oracle.com/alanc
More information about the xorg-devel
mailing list