1. 30 Apr, 2013 2 commits
    • Nick Kralevich's avatar
      52454e14
    • Nick Kralevich's avatar
      skia: Don't use -D_FORTIFY_SOURCE=2 · c8879d14
      Nick Kralevich authored
      SkString uses a dynamic growing mechanism for storing strings.
      This dynamic mechanism confuses GCC, which thinks it's operating
      with a single character. This causes crashes when we use
      Android's -D_FORTIFY_SOURCE=2 extensions.
      
      Consider the following code:
      
        SkLanguage SkLanguage::getParent() const {
            SkASSERT(fInfo != NULL);
            const char* tag = fInfo->fTag.c_str();
            SkASSERT(tag != NULL);
      
            // strip off the rightmost "-.*"
            char* parentTagEnd = strrchr(tag, '-');
        [DELETED]
        }
      
      fInfo->fTag is a SkString, which is declared as:
      
        class SkString {
        public:
        [DELETED]
            size_t      size() const { return (size_t) fRec->fLength; }
            const char* c_str() const { return fRec->data(); }
            char operator[](size_t n) const { return this->c_str()[n]; }
        [DELETED]
        private:
            struct Rec {
            public:
                size_t      fLength;
                int32_t     fRefCnt;
                char        fBeginningOfData;
      
                char* data() { return &fBeginningOfData; }
                const char* data() const { return &fBeginningOfData; }
            };
            Rec* fRec;
        [DELETED]
        };
      
      When "fInfo->fTag.c_str();" is executed in "SkLanguage::getParent()", it
      returns a pointer to fBeginningOfData, which is a single char. The compiler
      believes that "tag" always points to an element of size 1. When Android's
      strrchr() fortify extensions are called, we trigger an abort, because
      strrchr() detects an attempt to read beyond the one character
      fBeginningOfData.
      
      Change-Id: Ibe957544b5114c14018630a8f42213bf3dd806e3
      c8879d14
  2. 27 Mar, 2013 2 commits
  3. 26 Mar, 2013 1 commit
  4. 06 Mar, 2013 1 commit
  5. 17 Oct, 2012 1 commit
    • Romain Guy's avatar
      Add Android specific API · 7cd90d4e
      Romain Guy authored
      Bug #7353771
      
      This API is just a boolean property that tells the hardware renderer
      whether it should use mipmap levels.
      
      Change-Id: I123a334b89b0d64d711bdad43f5e2feb416de8b4
      7cd90d4e
  6. 25 Sep, 2012 1 commit
  7. 21 Sep, 2012 1 commit
  8. 04 Sep, 2012 1 commit
  9. 30 Aug, 2012 7 commits
  10. 27 Aug, 2012 4 commits
  11. 22 Aug, 2012 1 commit
    • Victoria Lease's avatar
      Disable "no context for char" log spam. · 41aa7b9f
      Victoria Lease authored
      It looks like Id8c91ae0be6cad8a7ef77a0cd5803676290986c1 upgraded this
      message from an actual error notification into a full-fledged adb log
      spammer. Oops! This CL moves it back to the location it should be at,
      and requires SK_DEBUG to see it even there.
      
      Bug: 7038312
      Change-Id: Iefc0b001a9874e0f177507d43231e6fdb4a1d92a
      41aa7b9f
  12. 21 Aug, 2012 1 commit
  13. 20 Aug, 2012 2 commits
    • Billy Hewlett's avatar
      DO NOT MERGE Han Preference · 725b3e03
      Billy Hewlett authored
      Cherry-pick Id8c91ae0be6cad8a7ef77a0cd5803676290986c1 from master.
      
      During font initialization, create a seperate fallback list for each
      locale. At runtime, use the fallbacklist associated with the locale
      set in the paint object. Fallback files are associated with locales in
      fallback_fonts.xml. Multiple files can be associated with the same
      locale, ordering within that langauge and apart from that language in
      the fallback order is preserved.
      
      This changelist also includes some refactoring, notably of the
      functions that call getNextContext().
      
      Change-Id: I121f0e491a522c4a8558a0066b2d8969fb8a3667
      725b3e03
    • Derek Sollenberger's avatar
  14. 17 Aug, 2012 5 commits
  15. 14 Aug, 2012 1 commit
  16. 01 Aug, 2012 1 commit
  17. 31 Jul, 2012 4 commits
  18. 30 Jul, 2012 1 commit
    • Raph Levien's avatar
      Fix bug 6888377: crash in GetUnitsPerEm on locale change · e454fde2
      Raph Levien authored
      The underlying problem is that no SkScalerContext objects existed at the
      time shapeFontRun is called immediately after a locale change from en to
      ja (apparently the dumping of the cache caused all these to be
      deallocated), so gFTLibrary was null (and the call tio ref_ft_face
      assumes that it's initialized).
      
      There's a pattern for calls which might not necessarily be called from a
      scaler context (GetAdvancedTypefaceMetrics is one such), to explicitly
      check for an uninitialized library, and create one for the length of the
      call if so. This patch changes GetUnitsPerEm to follow this pattern.
      
      Change-Id: I19a4b6fa49fad0aeacc04bf971101aacca6bc94f
      e454fde2
  19. 28 Jul, 2012 2 commits
  20. 27 Jul, 2012 1 commit
    • Victoria Lease's avatar
      Reduce embolden effect. DO NOT MERGE · 1d6fa961
      Victoria Lease authored
      Cherry-pick of Iec1c478171e33751be1cddbaae6a8ec30bb6cbab
      
      Certain CJK glyphs become essentially unreadable when emboldened at
      sizes used by common apps like News/Weather. Reducing embolden
      strength slightly makes these glyphs much more readable without
      sacrificing bold/normal weight differentiation.
      
      Bug: 6712857
      Change-Id: I1025f72b5ed07f0a65924ba58aa19511bc417eb1
      1d6fa961