1. 05 Apr, 2018 1 commit
  2. 04 Apr, 2018 18 commits
    • Jehan's avatar
      NEWS: keep up-to-date. · b88170b9
      Jehan authored
    • Jehan's avatar
      Bug 794949 - Plugin crash when opening png, jpeg or tiff with... · ba06a0fe
      Jehan authored
      ... non-latin unicode path.
      g_win32_locale_filename_from_utf8() was sometimes returning NULL for
      some paths on Windows. Then the call to gexiv2_metadata_open_path() with
      a NULL value was crashing plug-ins.
      This commit only prevents from crashing by simply failing to load
      metadata when this occurs, which means losing metadata support on
      Windows depending on filenames. A proper solution will have to be
    • Ell's avatar
      app: parallelize gimp-gegl-loops.cc · cb239e60
      Ell authored
    • Ell's avatar
      app: switch gimp-gegl-loops.c to C++ · 828b99b5
      Ell authored
    • Ell's avatar
      app: parallelize gimppaintcore-loops.cc · 3df757ff
      Ell authored
    • Ell's avatar
      app: switch gimppaintcore-loops.c to C++ · e8a14dee
      Ell authored
    • Ell's avatar
      app: parallelize gimpbrush-transform.cc · c8d4c079
      Ell authored
      Use gimp_parallel_distribute_foo() to parallelize the brush
      transform functions.
    • Ell's avatar
      app: switch gimpbrush-transform.c to C++ · 565f1f2a
      Ell authored
      The next commit is going to parallelize gimpbrush-transform using
      the gimp_parallel_distribute_foo() functions.  To spare us a lot of
      boilerplate code, we're going to use C++ lambdas as callback
      arguments to these functions.
      This commit does the initial conversion of gimpbrush-transform.c to
      C++, renaming it to gimpbrush-transform.cc.  We do this in a
      separate commit, so that the changes are small enough for git to
      register this as a renamed file, rather than a new file, so that we
      don't lose the file's history.
    • Ell's avatar
      app: add gimp-parallel · 86b89cf6
      Ell authored
      Add gimp-parallel.[cc,h], which provides a set of parallel
      These currently include:
        - gimp_parallel_distribute():  Calls a callback function in
          parallel on multiple threads, passing it the current thread
          index, and the total number of threads.  Allows specifying the
          maximal number of threads used.
        - gimp_parallel_distribute_range():  Splits a range of integers
          between multiple threads, passing the sub-range to a callback
          function.  Allows specifying the minimal sub-range size.
        - gimp_parallel_distribute_area():  Splits a rectangular area
          between multiple threads, passing the sub-area to a callback
          function.  Allows specifying the minimal sub-area.
      The callback function is passed using an appropriately-typed
      function pointer, and a user-data pointer.  Additionally, when used
      in a C++ file, each of the above functions has an overloaded
      template version, taking the callback through a generic parameter,
      without a user-data pointer, which allows using function objects.
    • Ell's avatar
      configure.ac: require a C++11 compiler · 700cc33b
      Ell authored
      The following commits use C++11 lambdas.
    • Ell's avatar
    • Jehan's avatar
      libgimp: add an exception handler for Windows. · fa02a2c6
      Jehan authored
      Drmingw already added its own exception handler which generates crash
      traces in a text file, for plug-ins as well. This additional handler is
      run after Drmingw handler and allows us to do things on our own, and in
      particular we could display the content of the debug traces.
      Right now it simply prints these to stderr, which actually won't be of
      much use on Win32, first because the console is deactivated on stable
      releases, also because after tests, it doesn't look like even running
      GIMP from cmd outputs to console either.
      We currently don't use the same debug dialog as the core on purpose,
      because we don't want everyone to send us traces for every unmaintained
      third party plug-ins out there. But we should definitely allow easier
      trace possibilities at some point, first to improve/debug our own core
      plug-ins, and also to help third party plug-in developers!
      So this commit is not making visible changes yet but is actually a first
      step towards these debugging goals.
    • Jehan's avatar
      libgimp: various warning fixes for Win32. · 76bce77d
      Jehan authored
    • Jehan's avatar
      libgimp: do not end the fatal and signal handlers with gimp_quit(). · 9c8a8ae5
      Jehan authored
      When ending with gimp_quit(), GIMP was not displaying the "Plug-in
      crashed" error dialog, which is not good, since we lose the crash
      feedback for plug-ins. Just let the plug-in continue its normal run in
      order to get the error dialog.
      Also protect the tracing functions, which are not working on Win32.
    • Jehan's avatar
      libgimp: add a gimp_fatal_func() allowing stack tracing plug-ins on... · e98b9376
      Jehan authored
      ... various crashes.
    • Jehan's avatar
      devel-docs: update debugging-tips.txt regarding --stack-trace-mode... · 6bcb30e1
      Jehan authored
      ... for plug-in debugging as well.
    • Jehan's avatar
      libgimp: properly catch SIGABRT signal. · c4621119
      Jehan authored
      SIGABRT was in the switch list in gimp_plugin_sigfatal_handler(), but it
      had not been properly handled with gimp_signal_private(), making this
      switch case useless. Fix this oversight, and while doing so, move it in
      the "fatal error" list for which we may generate stack traces, similarly
      to core signal handling. Indeed this signal can definitely happen during
      various kinds of common bugs and needs to be debugged.
    • Jehan's avatar
      plug-ins: minor fix of an error string. · 6936a655
      Jehan authored
      Was reading this part of the code when I saw this: the error happens
      when loading not exporting a PNG.
  3. 03 Apr, 2018 6 commits
  4. 02 Apr, 2018 11 commits
  5. 01 Apr, 2018 4 commits