Граф коммитов

439 Коммитов

Автор SHA1 Сообщение Дата
Carsten "Tomcat" Book 3b7b01d32d Merge mozilla-central to inbound 2017-07-27 11:27:45 +02:00
Lee Salzman f3254dc7ef Bug 1383767 - guarantee FreeType thread-safety by holding Cairo per-face lock and locking down rasterization. r=jrmuizel
MozReview-Commit-ID: DuPRIUBgw4W
2017-07-26 23:24:44 -04:00
Carsten "Tomcat" Book efd795174c Backed out changeset 22947e9aa292 (bug 1383767) for bustage 2017-07-27 08:20:41 +02:00
Lee Salzman 58dcb7ef01 Bug 1383767 - guarantee FreeType thread-safety by holding Cairo per-face lock and locking down rasterization. r=jrmuizel
MozReview-Commit-ID: DuPRIUBgw4W
2017-07-26 23:24:44 -04:00
Kartikaya Gupta ba4b3b9101 Bug 1384233 - Remove SizePrintfMacros.h. r=froydnj
We have a minimum requirement of VS 2015 for Windows builds, which supports
the z length modifier for format specifiers. So we don't need SizePrintfMacros.h
any more, and can just use %zu and friends directly everywhere.

MozReview-Commit-ID: 6s78RvPFMzv

--HG--
extra : rebase_source : 009ea39eb4dac1c927aa03e4f97d8ab673de8a0e
2017-07-26 16:03:57 -04:00
Lee Salzman 2d696d5c34 Bug 1376026 - fix plumbing of DWrite parameters for Skia fonts to not depend on gfxPlatform. r=jrmuizel
MozReview-Commit-ID: 5K9201eCSv
2017-06-30 14:09:05 -04:00
Sebastian Hengst 522fc18c93 Backed out changeset 24421d72ba08 (bug 1376026) 2017-07-07 21:42:09 +02:00
Lee Salzman ab6885d706 Bug 1376026 - fix plumbing of DWrite parameters for Skia fonts to not depend on gfxPlatform. r=jrmuizel
MozReview-Commit-ID: 5K9201eCSv
2017-06-30 14:09:05 -04:00
Carsten "Tomcat" Book fbc9f302f1 Backed out changeset d09fb3a5cedf (bug 1376026) 2017-07-06 08:11:48 +02:00
Lee Salzman edc6db4195 Bug 1376026 - fix plumbing of DWrite parameters for Skia fonts to not depend on gfxPlatform. r=jrmuizel 2017-06-30 14:09:05 -04:00
Farmer Tseng fda77ae953 Bug 1369302 - Set the font name to "Unknown" while fDWriteFontFamily is null. r=mchang
MozReview-Commit-ID: 4TED3Gh56IW

--HG--
extra : rebase_source : 463ff52865c09b6ead15eb401b80083188b2ab9a
2017-06-22 16:10:12 +08:00
Lee Salzman 29a9c9d166 Bug 1305085 - don't let SkScalerContext::computeMatrices generate zero scales. r=mchang
MozReview-Commit-ID: 4guj6XPWB47
2017-06-14 21:43:27 -04:00
Lee Salzman c3de804e39 Bug 1364691 - don't use walk_convex_edges in Skia path rendering unless edge count is at least 2. r=mchang
MozReview-Commit-ID: 8lN0tpqZIEh
2017-05-26 12:59:29 -04:00
Lee Salzman 4dfbb20ffb Bug 1364691 - add assertions to help figure out why Skia's AAA is crashing. r=jrmuizel
MozReview-Commit-ID: 4J8ztujEe1I
2017-05-25 11:52:49 -04:00
Lee Salzman 8ffb6649bf Bug 1364774 - fix premultiplied color output from linear gradients in Skia. r=mchang
MozReview-Commit-ID: Ay3ftFJz6a3
2017-05-24 15:52:56 -04:00
Makoto Kato 516badc0be Bug 1364840 - Part 2. Generate aarch64 build rule to add CRC32 feature on aarch64. r=lsalzman
SkOpts.cpp will call Init_crc32() on aarch64 build.  So we should add SkOpts_crc32.cpp to aarch64 sources.

MozReview-Commit-ID: BInjMXYA1jH

--HG--
extra : rebase_source : e6f0236df1cd9035255689fff9683f86ed967f59
2017-05-15 18:30:19 +09:00
Lee Salzman a2e8d3b7b9 Bug 1340627 - part 2 - update moz.build for Skia m59. r=jrmuizel
MozReview-Commit-ID: KdPvBio96Cw
2017-05-09 22:31:06 -04:00
Lee Salzman 008caf60cd Bug 1340627 - part 1 - update Skia source to m59. r=mchang
--HG--
rename : gfx/skia/skia/src/gpu/glsl/GrGLSL_impl.h => gfx/skia/skia/include/private/GrGLSL_impl.h
rename : gfx/skia/skia/src/core/SkMessageBus.h => gfx/skia/skia/include/private/SkMessageBus.h
rename : gfx/skia/skia/include/core/SkBlitRow.h => gfx/skia/skia/src/core/SkBlitRow.h
rename : gfx/skia/skia/include/effects/SkGaussianEdgeShader.h => gfx/skia/skia/src/effects/SkGaussianEdgeShader.h
rename : gfx/skia/skia/src/gpu/batches/GrAAConvexPathRenderer.h => gfx/skia/skia/src/gpu/ops/GrAAConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/batches/GrAAConvexTessellator.h => gfx/skia/skia/src/gpu/ops/GrAAConvexTessellator.h
rename : gfx/skia/skia/src/gpu/batches/GrAAHairLinePathRenderer.h => gfx/skia/skia/src/gpu/ops/GrAAHairLinePathRenderer.h
rename : gfx/skia/skia/src/gpu/batches/GrAALinearizingConvexPathRenderer.h => gfx/skia/skia/src/gpu/ops/GrAALinearizingConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/batches/GrPathStencilSettings.h => gfx/skia/skia/src/gpu/ops/GrPathStencilSettings.h
rename : gfx/skia/skia/src/gpu/batches/GrStencilAndCoverPathRenderer.h => gfx/skia/skia/src/gpu/ops/GrStencilAndCoverPathRenderer.h
rename : gfx/skia/skia/include/xml/SkXMLParser.h => gfx/skia/skia/src/xml/SkXMLParser.h
2017-05-09 22:30:58 -04:00
Carsten "Tomcat" Book 2e978e4438 Backed out changeset 0ded74baeaf2 (bug 1340627) for blocking m-i to m-c merge
--HG--
rename : gfx/skia/skia/src/core/SkBlitRow.h => gfx/skia/skia/include/core/SkBlitRow.h
rename : gfx/skia/skia/src/effects/SkGaussianEdgeShader.h => gfx/skia/skia/include/effects/SkGaussianEdgeShader.h
rename : gfx/skia/skia/src/xml/SkXMLParser.h => gfx/skia/skia/include/xml/SkXMLParser.h
rename : gfx/skia/skia/include/private/SkMessageBus.h => gfx/skia/skia/src/core/SkMessageBus.h
rename : gfx/skia/skia/src/gpu/ops/GrAAConvexPathRenderer.h => gfx/skia/skia/src/gpu/batches/GrAAConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/ops/GrAAConvexTessellator.h => gfx/skia/skia/src/gpu/batches/GrAAConvexTessellator.h
rename : gfx/skia/skia/src/gpu/ops/GrAAHairLinePathRenderer.h => gfx/skia/skia/src/gpu/batches/GrAAHairLinePathRenderer.h
rename : gfx/skia/skia/src/gpu/ops/GrAALinearizingConvexPathRenderer.h => gfx/skia/skia/src/gpu/batches/GrAALinearizingConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/ops/GrPathStencilSettings.h => gfx/skia/skia/src/gpu/batches/GrPathStencilSettings.h
rename : gfx/skia/skia/src/gpu/ops/GrStencilAndCoverPathRenderer.h => gfx/skia/skia/src/gpu/batches/GrStencilAndCoverPathRenderer.h
rename : gfx/skia/skia/include/private/GrGLSL_impl.h => gfx/skia/skia/src/gpu/glsl/GrGLSL_impl.h
2017-05-11 12:52:25 +02:00
Carsten "Tomcat" Book d6dc2abb78 Backed out changeset 1b2683a840f3 (bug 1340627) 2017-05-11 12:51:59 +02:00
Lee Salzman 4107093832 Bug 1340627 - part 2 - update moz.build for Skia m59. r=jrmuizel
MozReview-Commit-ID: KdPvBio96Cw
2017-05-09 22:31:06 -04:00
Lee Salzman e83e20fa0f Bug 1340627 - part 1 - update Skia source to m59. r=mchang
--HG--
rename : gfx/skia/skia/src/gpu/glsl/GrGLSL_impl.h => gfx/skia/skia/include/private/GrGLSL_impl.h
rename : gfx/skia/skia/src/core/SkMessageBus.h => gfx/skia/skia/include/private/SkMessageBus.h
rename : gfx/skia/skia/include/core/SkBlitRow.h => gfx/skia/skia/src/core/SkBlitRow.h
rename : gfx/skia/skia/include/effects/SkGaussianEdgeShader.h => gfx/skia/skia/src/effects/SkGaussianEdgeShader.h
rename : gfx/skia/skia/src/gpu/batches/GrAAConvexPathRenderer.h => gfx/skia/skia/src/gpu/ops/GrAAConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/batches/GrAAConvexTessellator.h => gfx/skia/skia/src/gpu/ops/GrAAConvexTessellator.h
rename : gfx/skia/skia/src/gpu/batches/GrAAHairLinePathRenderer.h => gfx/skia/skia/src/gpu/ops/GrAAHairLinePathRenderer.h
rename : gfx/skia/skia/src/gpu/batches/GrAALinearizingConvexPathRenderer.h => gfx/skia/skia/src/gpu/ops/GrAALinearizingConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/batches/GrPathStencilSettings.h => gfx/skia/skia/src/gpu/ops/GrPathStencilSettings.h
rename : gfx/skia/skia/src/gpu/batches/GrStencilAndCoverPathRenderer.h => gfx/skia/skia/src/gpu/ops/GrStencilAndCoverPathRenderer.h
rename : gfx/skia/skia/include/xml/SkXMLParser.h => gfx/skia/skia/src/xml/SkXMLParser.h
2017-05-09 22:30:58 -04:00
Wes Kocher 24a327994e Backed out 9 changesets (bug 1340627) for graphical glitches a=backout
Backed out changeset 0b1371055c7f (bug 1340627)
Backed out changeset f152be1fadb7 (bug 1340627)
Backed out changeset c691e2ab6a0c (bug 1340627)
Backed out changeset 3cb4bceb8d79 (bug 1340627)
Backed out changeset 026aadd76d06 (bug 1340627)
Backed out changeset fdbd5d281287 (bug 1340627)
Backed out changeset 75fb0d9858a9 (bug 1340627)
Backed out changeset 0d4ec7d38a00 (bug 1340627)
Backed out changeset af6f19870b2a (bug 1340627)

MozReview-Commit-ID: 9dHr7xMZezY

--HG--
rename : gfx/skia/skia/src/core/SkBlitRow.h => gfx/skia/skia/include/core/SkBlitRow.h
rename : gfx/skia/skia/src/effects/SkGaussianEdgeShader.h => gfx/skia/skia/include/effects/SkGaussianEdgeShader.h
rename : gfx/skia/skia/src/xml/SkXMLParser.h => gfx/skia/skia/include/xml/SkXMLParser.h
rename : gfx/skia/skia/include/private/SkMessageBus.h => gfx/skia/skia/src/core/SkMessageBus.h
rename : gfx/skia/skia/src/gpu/ops/GrAAConvexPathRenderer.h => gfx/skia/skia/src/gpu/batches/GrAAConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/ops/GrAAConvexTessellator.h => gfx/skia/skia/src/gpu/batches/GrAAConvexTessellator.h
rename : gfx/skia/skia/src/gpu/ops/GrAAHairLinePathRenderer.h => gfx/skia/skia/src/gpu/batches/GrAAHairLinePathRenderer.h
rename : gfx/skia/skia/src/gpu/ops/GrAALinearizingConvexPathRenderer.h => gfx/skia/skia/src/gpu/batches/GrAALinearizingConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/ops/GrPathStencilSettings.h => gfx/skia/skia/src/gpu/batches/GrPathStencilSettings.h
rename : gfx/skia/skia/src/gpu/ops/GrStencilAndCoverPathRenderer.h => gfx/skia/skia/src/gpu/batches/GrStencilAndCoverPathRenderer.h
rename : gfx/skia/skia/include/private/GrGLSL_impl.h => gfx/skia/skia/src/gpu/glsl/GrGLSL_impl.h
2017-05-10 10:01:18 -07:00
Lee Salzman 3bbca77ed4 Bug 1340627 - part 2 - update moz.build for Skia m59. r=jrmuizel
MozReview-Commit-ID: KdPvBio96Cw
2017-05-09 22:31:06 -04:00
Lee Salzman b4227baa51 Bug 1340627 - part 1 - update Skia source to m59. r=mchang
--HG--
rename : gfx/skia/skia/src/gpu/glsl/GrGLSL_impl.h => gfx/skia/skia/include/private/GrGLSL_impl.h
rename : gfx/skia/skia/src/core/SkMessageBus.h => gfx/skia/skia/include/private/SkMessageBus.h
rename : gfx/skia/skia/include/core/SkBlitRow.h => gfx/skia/skia/src/core/SkBlitRow.h
rename : gfx/skia/skia/include/effects/SkGaussianEdgeShader.h => gfx/skia/skia/src/effects/SkGaussianEdgeShader.h
rename : gfx/skia/skia/src/gpu/batches/GrAAConvexPathRenderer.h => gfx/skia/skia/src/gpu/ops/GrAAConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/batches/GrAAConvexTessellator.h => gfx/skia/skia/src/gpu/ops/GrAAConvexTessellator.h
rename : gfx/skia/skia/src/gpu/batches/GrAAHairLinePathRenderer.h => gfx/skia/skia/src/gpu/ops/GrAAHairLinePathRenderer.h
rename : gfx/skia/skia/src/gpu/batches/GrAALinearizingConvexPathRenderer.h => gfx/skia/skia/src/gpu/ops/GrAALinearizingConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/batches/GrPathStencilSettings.h => gfx/skia/skia/src/gpu/ops/GrPathStencilSettings.h
rename : gfx/skia/skia/src/gpu/batches/GrStencilAndCoverPathRenderer.h => gfx/skia/skia/src/gpu/ops/GrStencilAndCoverPathRenderer.h
rename : gfx/skia/skia/include/xml/SkXMLParser.h => gfx/skia/skia/src/xml/SkXMLParser.h
2017-05-09 22:30:58 -04:00
Lee Salzman ce86d53eec Bug 1358776 - fix building of SkBitmapProcState on ARM NEON. r=jrmuizel 2017-05-01 13:36:19 -04:00
Lee Salzman a10fddc8eb Bug 1350783 - support bitmaps fonts in gfxFcPlatformFontList. r=jfkthame
MozReview-Commit-ID: 4VQkyhx4IJE
2017-03-29 13:47:46 -04:00
Lee Salzman aa429c08b7 Bug 1347262 - fix Skia's round_asymmetric_to_int to bias all sides. r=jrmuizel
MozReview-Commit-ID: AMDi6YF0zn
2017-03-22 15:03:03 -04:00
Lee Salzman 3ea6ffc414 Bug 1347094 - fix SkiaGL canvas drawing of large images. r=mchang
MozReview-Commit-ID: Cw5EkXQj06t
2017-03-15 13:57:18 -04:00
Mike Hommey 318137c0da Bug 1342707 - Don't use Init_neon if runtime detection of neon is not enabled. r=lsalzman
--HG--
extra : rebase_source : 7f15d77c902a923d4dcc384c4fc10e877ce0bdf1
2017-02-26 08:12:18 +09:00
Lee Salzman 13b36b3f35 Bug 1339637 - fix overflow in SkClampRange::init(). r=jrmuizel
MozReview-Commit-ID: 7NtQP5QPsFk
2017-02-21 14:32:39 -05:00
Jonathan Kew 36f52391d9 Bug 1331683 - Don't attempt to use any Core Text and Core Graphics variation-font APIs on pre-Sierra systems. r=jrmuizel,lsalzman 2017-02-09 21:37:24 +00:00
Mason Chang 189cf8b6db Bug 1322897. Use only the G channel for grayscale AA Dwrite fonts and Skia. r=lsalzman 2017-02-01 15:47:33 -08:00
Lee Salzman bf02f8d486 Bug 1334366 - verify that glyph position rect is non-empty in GrAtlasTextBlob::appendGlyph. r=mchang
MozReview-Commit-ID: JcPZSGfitmH
2017-01-27 16:14:18 -05:00
Lee Salzman f899d6e6ff Bug 1325259 - fix A8_RowProc_Opaque to not use legacy broken lerp. r=vliu
MozReview-Commit-ID: FU7WxzQ3n7T
2017-01-18 10:15:09 -05:00
Lee Salzman a25a4562c0 Bug 1322337 - load color bitmaps in SkFontHost_cairo when building with FreeType before 2.5.0. r=mchang
MozReview-Commit-ID: Ay7hJi7RK4T
2017-01-17 12:27:16 -05:00
Lee Salzman 9c04aa009c Bug 1330166 - ensure path bounds after rounding contain path edges when using SK_RASTERIZE_EVEN_ROUNDING. r=jrmuizel
MozReview-Commit-ID: Jb48BkbHEPs
2017-01-13 12:10:40 -05:00
Jonathan Kew 3d478b5e48 Bug 1324739 - patch 2 - Enable use of sfntly in Skia-PDF to subset fonts. r=lsalzman,glandium 2017-01-07 22:20:25 +00:00
Lee Salzman b8debd5aca Bug 1325518 - make SkPath::conservativelyContainsRect consume degenerate segments. r=mchang
MozReview-Commit-ID: 78rE2oNc3IU
2017-01-11 12:40:46 -05:00
Jonathan Kew c021e933d7 Bug 1321031 pt 3 - Preserve variations settings when creating a new CTFont in SkFontHost_mac. r=lsalzman 2017-01-06 16:35:12 +00:00
Ryan VanderMeulen e897fba434 Backed out 6 changesets (bug 1321031) for bustage.
Backed out changeset e0be4f5390fb (bug 1321031)
Backed out changeset ba071046f8ab (bug 1321031)
Backed out changeset 7cb4242dc636 (bug 1321031)
Backed out changeset bc58e479eb58 (bug 1321031)
Backed out changeset c551913ae892 (bug 1321031)
Backed out changeset f4ae57d5358f (bug 1321031)

CLOSED TREE
2017-01-06 12:46:27 -05:00
Jonathan Kew 4c288caa59 Bug 1321031 pt 3 - Preserve variations settings when creating a new CTFont in SkFontHost_mac. r=lsalzman 2017-01-06 16:35:12 +00:00
Lee Salzman 9efc50d84e Bug 1318769 - make SkFontHost_cairo match cairo-ft's handling of FcPattern embeddedbitmap option. r=jfkthame
MozReview-Commit-ID: BSDuwZfKi1a
2017-01-01 09:25:15 -05:00
Nathan Froyd 0c4b96a65e Bug 1029245 - part 0 - tweak Skia's SkOnce.h header to work around issues with std::atomic::compare_exchange_strong; r=lsalzman
Building Skia inside of mozilla-central with GCC 4.9.4 causes problems:

[...]c++/4.9.4/bits/atomic_base.h:581:70: error: failure memory model cannot be stronger than success memory model for '__atomic_compare_exchange'

The error stack accompanying this message points at SkEventTracer::GetInstance:

SkEventTracer* SkEventTracer::GetInstance() {
    if (SkEventTracer* tracer = sk_atomic_load(&gUserTracer, sk_memory_order_acquire)) {
        return tracer;
    }
    static SkOnce once;
    static SkDefaultEventTracer* defaultTracer;
    once([] { defaultTracer = new SkDefaultEventTracer; });
    return defaultTracer;
}

The only place that compare_exchange_strong could be called here is from SkOnce::operator():

    template <typename Fn, typename... Args>
    void operator()(Fn&& fn, Args&&... args) {
        auto state = fState.load(std::memory_order_acquire);

        if (state == Done) {
            return;
        }

        // If it looks like no one has started calling fn(), try to claim that job.
        if (state == NotStarted && fState.compare_exchange_strong(state, Claimed,
                                                                  std::memory_order_relaxed)) {
            // Great!  We'll run fn() then notify the other threads by releasing Done into fState.
            fn(std::forward<Args>(args)...);
            return fState.store(Done, std::memory_order_release);
        }
        [...code elided...]

where |fState| is an atomic<uint8_t>.

The three-argument form of atomic<uint8_t>::compare_exchange_strong is defined as:

      _GLIBCXX_ALWAYS_INLINE bool
      compare_exchange_strong(__int_type& __i1, __int_type __i2,
			      memory_order __m = memory_order_seq_cst) noexcept
      {
	return compare_exchange_strong(__i1, __i2, __m,
				       __cmpexch_failure_order(__m));
      }

__cmpexch_failure_order relaxes the given memory_order:

  // Drop release ordering as per [atomics.types.operations.req]/21
  constexpr memory_order
  __cmpexch_failure_order2(memory_order __m) noexcept
  {
    return __m == memory_order_acq_rel ? memory_order_acquire
      : __m == memory_order_release ? memory_order_relaxed : __m;
  }

  constexpr memory_order
  __cmpexch_failure_order(memory_order __m) noexcept
  {
    return memory_order(__cmpexch_failure_order2(__m & __memory_order_mask)
      | (__m & __memory_order_modifier_mask));
  }

which then gets us to the four-argument version of compare_exchange_strong:

      _GLIBCXX_ALWAYS_INLINE bool
      compare_exchange_strong(__int_type& __i1, __int_type __i2,
			      memory_order __m1, memory_order __m2) noexcept
      {
        memory_order __b2 = __m2 & __memory_order_mask;
        memory_order __b1 = __m1 & __memory_order_mask;
	__glibcxx_assert(__b2 != memory_order_release);
	__glibcxx_assert(__b2 != memory_order_acq_rel);
	__glibcxx_assert(__b2 <= __b1);

	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
      }

Despite the constexpr annotation on __cmpexch_failure_order and friends,
which ought to imply that they get constant-folded, I think what is
happening is that GCC doesn't see |memory_order_relaxed| when it
examines __m2.  Instead, it seems some internal tree representation for
the call to __cmpexch_failure_order.  Since this is not an integer
constant, GCC treats __m2 as being equivalent to memory_order_seq_cst
(see gcc/builtins.c:get_memmodel).  And since memory_order_seq_cst is
stronger than memory_order_relaxed, we get the above error.

In any event, the easiest fix is to simply use the four-argument form of
compare_exchange_strong directly, explicitly specifying the failure
memory order.
2016-12-21 04:28:08 -05:00
Mason Chang 5902ea8a82 Bug 1323587 Part 1: Use correct gamma and contrast for dwrite fonts. r=lsalzman 2016-12-16 08:04:45 -08:00
Mason Chang 49715dce65 Bug 1321901 - Use IDWriteFontFace::GetRecommendedRenderingMode for font rendering mode in Skia. r=lsalzman 2016-12-15 08:33:43 -08:00
Lee Salzman 36bd8ec521 Bug 1320644 - don't use __stdcall with SkiaGLGlue. r=mchang
MozReview-Commit-ID: 5pljJkGSN8R
2016-11-30 15:12:40 -05:00
Lee Salzman 03322ca26d Bug 1315848 - Skia clamped gradient fix r=mchang
MozReview-Commit-ID: GUHZC7VRrlC

--HG--
extra : source : f51d3ab82dc60c54403cc6f64f4e0a5a87a5f5ff
2016-11-21 14:10:05 -05:00
Mason Chang 793727bf2c Bug 1315568 Use Force GDI information from SkTypeface for GDI rendering modes in skia. r=lsalzman 2016-11-29 08:03:33 -08:00
Mike Hommey b4a7c9cf1c Bug 1319389 - Generically set SK_CPU_[BL]ENDIAN based on __BYTE_ORDER__ when available. r=lsalzman
--HG--
extra : rebase_source : 895f2166b36df699d542bd39e22bdddd0b423594
2016-11-22 20:09:02 +09:00