Re: commit (HEAD): xap_Strings.h/cpp

From: Tomas Frydrych (tomas_at_frydrych.uklinux.net)
Date: Fri Apr 09 2004 - 16:02:40 EDT

  • Next message: Marc Maurer: "Re: Preferences dialog: Not implementing options without hacks"

    > Again, the solution is to not use the .c_str() or
    > .utf8_str() functions in these cases. Or if you do,
    > you must really store the returned value.
    >
    > We are not returning a true temporary value from the
    > function. The function returns an instance of a class,
    > complete with copy constructors and assignment
    > operators.

    How un-temporary is that? That instance ceases to exist virtually at
    the point at which the function returns; the operators are exactly as
    usefull as the utf8_str() function. Since we have to make a copy of
    that instance to be able to use it, it makes very little sense in
    this case to create the object in the first place. We would be better
    advised to return char *.

    > Problems like these can be found easily enough using
    > Valgrind, Purify, grep, or 5 seconds staring at the
    > code.

    If you know the bug is there and where it is; the fact is that this
    has obviously lived in the code for a while going undetected, and it
    is this that bothers me. I accept that using static varibable might
    not be best solution, but problem is directly caused by the API.

    So, my proposal is to remove UT_String getValue() and change the
    other to char * getValueUTF8().

    Tomas



    This archive was generated by hypermail 2.1.4 : Fri Apr 09 2004 - 16:05:20 EDT