[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