On 13-03-07 11:06 AM, Dimitar Zhekov wrote:
On Mon, 04 Mar 2013 22:30:40 -0000
Colomban Wendling <git-nore...@geany.org> wrote:

Log Message:
-----------
Scope: Fix mismatched allocator/deallocator

These are not mismatched, I'm using strdup() instead of strdup() for
strings that must never be NULL. Unless we have a policy to always
use g_strdup(), or there is a real g_/strdup vs. g_/free mismatch
somewhere, I'm going to revert them.


I don't see any mismatch either but strdup() is not in C standard (at least C89/99) but rather POSIX or some other one AFAIK.

If you really don't like the g_strdup() behaviour, you could always write something like:

    char* scope_strdup(const char *s)
    {
      char *n;
      size_t len;
      if (s == NULL)
        g_error("NULL string passed to scope_strdup()");
      len = strlen(s) + 1;
      n = malloc(len);
      memcpy(n, s, len);
      return n;
    }

Then at least there's some hint of what went wrong rather than just bringing down the entire program with a mysterious segfault (assuming the above code I didn't test doesn't do that itself :).

Personally I prefer offensive programming: if something goes wrong, let
it crash and burn, get a proper backtrace and fix it.


Note to self: don't use Scope plugin until all files are saved :)

Cheers,
Matthew Brush

_______________________________________________
Devel mailing list
Devel@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/devel

Reply via email to