1. 23 Oct, 2018 1 commit
  2. 21 Oct, 2018 1 commit
  3. 12 Oct, 2018 1 commit
  4. 10 Oct, 2018 1 commit
    • Adam Reichold's avatar
      Remove usage of pragmas interface and implementation · 7f20ace4
      Adam Reichold authored
      GCC recommends not using them for a long time and its documentation says:
      > These #pragmas have been superceded as of GCC 2.7.2 by COMDAT support
      > and the “key method” heuristic mentioned in Vague Linkage.
      > Using them can actually cause your program to grow due to
      > unnecessary out-of-line copies of inline functions.
      
      Also nobody seems to set USE_GCC_PRAGMAS and sometimes they were
      guarded by just __GNUC__ which upsets Clang.
      7f20ace4
  5. 05 Oct, 2018 2 commits
    • StefanBruens's avatar
      SplashXPathScanner: Reduce complexity of sorting spans · 0118e221
      StefanBruens authored
      For complex paths, a significant amount of time is spent in
      SplashXPathScanner::computeIntersections, more specifically with
      sorting the spans in y/x order.
      
      Instead of using one large array for all spans, use a 2-dimensional
      structure.  As the number of y positions is known upfront, it is
      possible to create an array for the y dimension and insert the spans
      directly at the appropriate position.
      
      For Y rows with X spans per row, this reduces the complexity for sorting
      from O( Y*X log Y*X) to O( Y * X log X), i.e. a reduction by log Y.
      
      For the documents from #57 (fdo#96728) and #24 (fdo#78728), the
      runtime/memory is significantly reduced (according to /usr/bin/time -v):
      (1) $> pdftoppm -r 18 -aa no runsforever-poppler.pdf
      (2) $> pdftoppm surf-types.pdf
      
      Before/After
                                        runsforever-poppler |    surf-types
      User time (seconds):                2979.80 / 2348.08 |  9.45 /  7.76
      Maximum resident set size (kbytes):   51208 /   46288 | 18084 / 14076
      0118e221
    • StefanBruens's avatar
      SplashXPathScanner: Move state out of SplashXPathScanner for iterating spans · 68fdbfd0
      StefanBruens authored
      Iterating through spans is independent of the spans itself. Moving the
      iteration to a seperate class allows to keep the iteration state out
      of SplashXPathScanner, and also allows to move invariant code out of
      getNextSpan(...).
      68fdbfd0
  6. 08 Jan, 2018 1 commit
    • Albert Astals Cid's avatar
      Delete lots of copy constructors and copy assignment operators · 8794789a
      Albert Astals Cid authored
      Fixes rule-of-three and copyable-polymorphic warnings reported by clazy.
      
      The default copy constructor and copy assignment operator are
      only valid for simple classes so we delete them (i.e. make then not exist)
      when we have either a virtual class or a destructor, the code still compiles
      so this doesn't fix any bug, it is more a protection for when you think you
      can copy a class and don't realize the default copy constrcutor is not doing
      what you want and you get crashes. Hopefully this helps us in the future :)
      8794789a
  7. 20 Jul, 2014 1 commit
  8. 12 Jul, 2014 1 commit
  9. 12 Feb, 2013 1 commit
  10. 07 Jan, 2012 1 commit
    • Albert Astals Cid's avatar
      xpdf303: Merge some stuff in Splash [Thomas Freitag] · 34ae3829
      Albert Astals Cid authored
      1. merge the complete pipe changes
      a) including the overprint implementation from Derek used by pipe
      b) including the transfer function implementation
      2. Two changes (not really a merge) to get it compiled under windows (in
      GlobalParams.cc & PDFDoc.cc)
      3. merge fill and stroke changes
      a) including merge of SplashClip.cc
      b) including merge of SplashXPathScanner.cc
      34ae3829
  11. 25 Apr, 2007 1 commit
  12. 03 Mar, 2005 1 commit