From 0afb760f0b2ce60e52a723feec5978d54ca91932 Mon Sep 17 00:00:00 2001 From: Adam Brady Date: Wed, 19 Sep 2018 10:14:37 +0800 Subject: [PATCH] 6.0.0 --- WKC/WTF/wtf/WKC/OSAllocatorWKC.cpp | 6 +- WKC/WebCore/platform/graphics/WKC/FontWKC.cpp | 29 +- .../graphics/WKC/GraphicsContextWKCCairo.cpp | 8 +- .../graphics/WKC/MediaPlayerPrivateWKC.cpp | 9 +- .../graphics/WKC/MediaPlayerPrivateWKC.h | 3 +- .../graphics/WKC/SourceBufferPrivateWKC.cpp | 89 +- .../graphics/WKC/SourceBufferPrivateWKC.h | 6 +- .../platform/network/WKC/HTTPCacheWKC.cpp | 78 +- .../platform/network/WKC/HTTPCacheWKC.h | 11 +- .../network/WKC/ResourceHandleManagerWKC.cpp | 19 +- .../network/WKC/ResourceHandleManagerWKC.h | 4 +- .../WKC/ResourceHandleManagerWKCSSL.cpp | 10 + .../network/WKC/SocketStreamHandleWKC.cpp | 1 - .../WKC/helpers/WKCHTMLFormControlElement.h | 6 +- WKC/WebKit/WKC/helpers/WKCHTMLInputElement.h | 4 +- .../WKC/helpers/WKCHTMLTextAreaElement.h | 4 +- WKC/WebKit/WKC/helpers/WKCNode.h | 11 +- WKC/WebKit/WKC/helpers/WKCTextTrack.h | 4 +- .../privates/WKCHTMLFormControlElement.cpp | 38 +- .../WKCHTMLFormControlElementPrivate.h | 5 +- .../helpers/privates/WKCHTMLInputElement.cpp | 30 +- .../privates/WKCHTMLInputElementPrivate.h | 4 +- .../privates/WKCHTMLTextAreaElement.cpp | 26 +- .../privates/WKCHTMLTextAreaElementPrivate.h | 4 +- WKC/WebKit/WKC/helpers/privates/WKCNode.cpp | 84 +- .../WKC/helpers/privates/WKCNodePrivate.h | 15 +- .../WKC/helpers/privates/WKCTextTrack.cpp | 11 +- .../helpers/privates/WKCTextTrackPrivate.h | 4 +- WKC/WebKit/WKC/webkit/WKCMemoryInfo.cpp | 11 +- WKC/WebKit/WKC/webkit/WKCMemoryInfo.h | 8 +- WKC/WebKit/WKC/webkit/WKCVersion.h | 2 +- WKC/WebKit/WKC/webkit/WKCWebView.cpp | 55 +- WKC/WebKit/WKC/webkit/WKCWebView.h | 35 +- WKC/include/wkc/wkcdebugpeer.h | 3 + WKC/include/wkc/wkcheappeer.h | 9 +- WKC/include/wkc/wkcmediapeer.h | 46 +- WKC/include/wkc/wkcmpeer.h | 6 +- WKC/include/wkccairorename.h | 5 + WKC/include/wkcplatform.h | 5 +- WebKitLibraries/cairo/ChangeLog | 1036 +++++++++++++- WebKitLibraries/cairo/Makefile.in | 28 +- WebKitLibraries/cairo/NEWS | 49 + WebKitLibraries/cairo/RELEASING | 17 +- .../cairo/build/Makefile.win32.features | 1 - .../cairo/build/Makefile.win32.features-h | 3 - WebKitLibraries/cairo/build/aclocal.float.m4 | 2 +- .../cairo/build/configure.ac.features | 2 +- WebKitLibraries/cairo/cairo-version.h | 2 +- WebKitLibraries/cairo/config.h | 20 +- WebKitLibraries/cairo/config.h.in | 18 + WebKitLibraries/cairo/configure | 397 +----- WebKitLibraries/cairo/configure.ac | 58 +- WebKitLibraries/cairo/doc/Makefile.in | 1 - WebKitLibraries/cairo/doc/public/Makefile.in | 577 ++++---- .../doc/public/html/cairo-FreeType-Fonts.html | 3 +- .../doc/public/html/cairo-Image-Surfaces.html | 2 +- .../doc/public/html/cairo-SVG-Surfaces.html | 41 +- .../doc/public/html/cairo-Tags-and-Links.html | 6 +- .../html/cairo-Version-Information.html | 4 +- .../cairo/doc/public/html/cairo.devhelp2 | 2 +- .../cairo/doc/public/html/index-1.10.html | 112 +- .../cairo/doc/public/html/index-1.12.html | 126 +- .../cairo/doc/public/html/index-1.14.html | 10 +- .../cairo/doc/public/html/index-1.2.html | 106 +- .../cairo/doc/public/html/index-1.4.html | 58 +- .../cairo/doc/public/html/index-1.6.html | 44 +- .../cairo/doc/public/html/index-1.8.html | 66 +- .../cairo/doc/public/html/index-all.html | 1016 ++++++------- .../cairo/doc/public/html/index.html | 2 +- .../cairo/doc/public/tmpl/cairo-tag.sgml | 2 - WebKitLibraries/cairo/doc/public/version.xml | 2 +- .../cairo/doc/public/xml/api-index-1.16.xml | 3 - .../cairo/doc/public/xml/api-index-1.2.xml | 1 + .../cairo/doc/public/xml/cairo-ft.xml | 3 +- .../cairo/doc/public/xml/cairo-image.xml | 2 +- .../cairo/doc/public/xml/cairo-svg.xml | 43 +- .../cairo/doc/public/xml/cairo-tag.xml | 6 +- .../cairo/doc/public/xml/cairo-version.xml | 4 +- .../cairo/src/Makefile.am.features | 16 - WebKitLibraries/cairo/src/Makefile.in | 1127 +++++++-------- WebKitLibraries/cairo/src/Makefile.sources | 58 +- .../cairo/src/Makefile.win32.features | 16 - .../src/cairo-bentley-ottmann-rectangular.c | 12 +- .../cairo/src/cairo-cogl-surface.c | 2 +- .../cairo/src/cairo-compiler-private.h | 2 +- WebKitLibraries/cairo/src/cairo-debug.c | 2 + .../cairo/src/cairo-font-options.c | 93 +- WebKitLibraries/cairo/src/cairo-ft-font.c | 197 ++- .../cairo/src/cairo-image-compositor.c | 17 + .../cairo/src/cairo-malloc-private.h | 2 +- WebKitLibraries/cairo/src/cairo-misc.c | 45 +- .../cairo/src/cairo-pdf-operators.c | 2 +- .../cairo/src/cairo-pdf-surface-private.h | 2 +- WebKitLibraries/cairo/src/cairo-pdf-surface.c | 2 +- WebKitLibraries/cairo/src/cairo-png.c | 23 +- WebKitLibraries/cairo/src/cairo-ps-surface.c | 6 +- WebKitLibraries/cairo/src/cairo-surface.c | 7 +- WebKitLibraries/cairo/src/cairo-svg-surface.c | 20 +- WebKitLibraries/cairo/src/cairo-svg.h | 2 +- .../cairo/src/cairo-types-private.h | 1 + WebKitLibraries/cairo/src/cairo-version.c | 4 +- .../cairo/src/cairo-xlib-render-compositor.c | 3 + .../cairo/src/cairo-xlib-surface.c | 2 +- WebKitLibraries/cairo/src/cairo-xml-surface.c | 2 +- WebKitLibraries/cairo/src/cairo.c | 6 +- WebKitLibraries/cairo/src/cairo.h | 9 +- WebKitLibraries/cairo/src/cairoint.h | 11 +- .../src/win32/cairo-win32-display-surface.c | 54 +- .../cairo/src/win32/cairo-win32-private.h | 28 +- webkit/JavaScriptCore/ChangeLog | 1270 +++++++++++++++++ webkit/JavaScriptCore/bytecode/CodeBlock.cpp | 20 +- .../JavaScriptCore/runtime/ArrayPrototype.cpp | 43 +- webkit/JavaScriptCore/runtime/JSONObject.cpp | 6 +- webkit/JavaScriptCore/runtime/JSObject.h | 10 +- .../runtime/StringConstructor.cpp | 29 +- webkit/WTF/ChangeLog | 89 ++ webkit/WTF/wtf/text/StringBuilder.cpp | 39 +- webkit/WTF/wtf/text/StringBuilder.h | 3 +- webkit/WebCore/ChangeLog | 807 ++++++++++- .../WebCore/Modules/mediasource/SampleMap.cpp | 77 - .../WebCore/Modules/mediasource/SampleMap.h | 3 - .../Modules/mediasource/SourceBuffer.cpp | 158 +- .../Modules/mediasource/SourceBuffer.h | 6 +- .../Modules/webaudio/RealtimeAnalyser.cpp | 5 +- webkit/WebCore/dom/Document.cpp | 11 +- webkit/WebCore/html/HTMLInputElement.cpp | 15 +- webkit/WebCore/html/HTMLInputElement.h | 4 +- webkit/WebCore/html/HTMLMediaElement.cpp | 9 +- webkit/WebCore/html/HTMLMediaElement.h | 1 + webkit/WebCore/html/InputType.cpp | 18 +- webkit/WebCore/html/InputType.h | 9 +- webkit/WebCore/page/ChromeClient.h | 2 + webkit/WebCore/page/FocusController.cpp | 18 +- webkit/WebCore/page/FocusController.h | 1 + webkit/WebCore/page/SpatialNavigation.cpp | 6 +- webkit/WebCore/page/animation/AnimationBase.h | 2 +- .../page/animation/ImplicitAnimation.cpp | 2 +- .../page/animation/ImplicitAnimation.h | 2 +- .../page/animation/KeyframeAnimation.cpp | 9 +- .../page/animation/KeyframeAnimation.h | 2 +- webkit/WebCore/platform/CalculationValue.cpp | 26 +- webkit/WebCore/platform/ScrollView.cpp | 3 + webkit/WebCore/platform/ScrollView.h | 11 +- webkit/WebCore/platform/Widget.cpp | 9 +- webkit/WebCore/platform/Widget.h | 9 +- webkit/WebCore/platform/audio/Biquad.h | 3 + webkit/WebCore/platform/audio/FFTFrame.cpp | 3 + .../WebCore/platform/graphics/FontCache.cpp | 7 +- .../WebCore/platform/graphics/FontCascade.cpp | 10 +- .../WebCore/platform/graphics/GlyphBuffer.h | 91 +- .../platform/graphics/ca/GraphicsLayerCA.cpp | 17 + .../platform/graphics/cairo/FontCairo.cpp | 31 +- .../graphics/cairo/PlatformContextCairo.cpp | 8 + .../graphics/mac/ComplexTextController.cpp | 4 + .../platform/graphics/win/FontCGWin.cpp | 13 +- .../graphics/win/UniscribeController.cpp | 9 +- webkit/WebCore/rendering/RenderLayer.cpp | 19 +- webkit/WebCore/rendering/RenderLayer.h | 6 +- .../WebCore/rendering/RenderLayerBacking.cpp | 3 + .../rendering/RenderLayerCompositor.cpp | 32 + webkit/WebCore/rendering/RenderTheme.cpp | 1 + webkit/WebCore/svg/SVGAnimatedAngle.cpp | 5 + webkit/WebCore/svg/SVGAnimatedType.cpp | 10 +- webkit/WebCore/svg/SVGPathElement.cpp | 3 +- webkit/WebCore/svg/SVGPathSegList.cpp | 15 + webkit/WebCore/svg/SVGPathSegList.h | 30 +- .../SVGPathSegListPropertyTearOff.cpp | 23 +- .../SVGPathSegListPropertyTearOff.h | 4 +- .../svg/properties/SVGPropertyTearOff.h | 23 + webkit/WebCore/testing/Internals.cpp | 5 + webkit/WebCore/testing/Internals.h | 2 + webkit/WebCore/testing/Internals.idl | 2 + 172 files changed, 6550 insertions(+), 2919 deletions(-) diff --git a/WKC/WTF/wtf/WKC/OSAllocatorWKC.cpp b/WKC/WTF/wtf/WKC/OSAllocatorWKC.cpp index 82b12d446..da0a0688e 100644 --- a/WKC/WTF/wtf/WKC/OSAllocatorWKC.cpp +++ b/WKC/WTF/wtf/WKC/OSAllocatorWKC.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2014 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2017 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -60,13 +60,13 @@ OSAllocator::releaseDecommitted(void* ptr, size_t size) void OSAllocator::commit(void* ptr, size_t size, bool writable, bool executable) { - wkcHeapCommitPeer(ptr, size, writable, executable); + // wkcHeapReserveUncommittedPeer returns commited memory, so we do nothing here. } void OSAllocator::decommit(void* ptr, size_t size) { - wkcHeapDecommitPeer(ptr, size); + // wkcHeapReleaseDecommittedPeer will decommit and release memory, so we do nothing here. } } // namespace diff --git a/WKC/WebCore/platform/graphics/WKC/FontWKC.cpp b/WKC/WebCore/platform/graphics/WKC/FontWKC.cpp index 102056e89..6ff1d4196 100644 --- a/WKC/WebCore/platform/graphics/WKC/FontWKC.cpp +++ b/WKC/WebCore/platform/graphics/WKC/FontWKC.cpp @@ -1,7 +1,7 @@ /* * Copyright (C) 2007 Kevin Ollivier. All rights reserved. * Copyright (C) 2014 Igalia S.L. - * Copyright (c) 2010-2017 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2010-2018 ACCESS CO., LTD. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -341,12 +341,39 @@ fixedGlyphs(int sch, bool isemoji, const UChar* str, int& len, bool& needfree) } for (int i=0; i0) + c_prev = str[i-1]; + UChar c_after_next = 0; + if (i<(len - 2)) + c_after_next = str[i+2]; + if (FontCascade::treatAsSpace(c)) { buf[j++] = 0x20; } else if (c==0x200d) { buf[j++] = c; } else if ((c==0x200b || FontCascade::treatAsZeroWidthSpace(c) || c==0xfeff)) { buf[j++] = 0x200b; + // Instead of implementing Emoji variation sequences, temporarily convert Variation Selector-15 (U+fe0e) and Variation Selector-16 (U+feof) to zero width space (U+200b). + // If Variation Selector is followed by Zero Width Joiner (U+200d), don't convert to zero width space. + } else if ((c==0xfe0e || c==0xfe0f) && c_next!=0x200d) { + buf[j++] = 0x200b; + // Instead of implementing Emoji variation sequences, temporarily convert Variation Selector-15 (U+fe0e) and Variation Selector-16 (U+feof) to zero width space (U+200b). + // If Variation Selector is followed by Zero Width Joiner (U+200d) and Zero Width Joiner is followed by Gender Symbol (U+2640 or U+2642), convert to zero width space. + } else if ((c==0xfe0e || c==0xfe0f) && c_next==0x200d && (c_after_next==0x2640 || c_after_next==0x2642)) { + buf[j++] = 0x200b; + i++; + // Instead of implementing Emoji variation sequences, temporarily convert VS1 - VS14 (U+fe00 - U+fe0d) to zero width space (U+200b). + } else if (c>=0xfe00 && c<=0xfe0d) { + buf[j++] = 0x200b; + // Instead of implementing Emoji variation sequences, temporarily convert VS17 - VS256 (U+db40 U+dd00 - U+db40 U+ddef) to zero width spaces (U+200b U+200b). + } else if (c == 0xdb40 && c_next>=0xdd00 && c_next<=0xddef) { + buf[j++] = 0x200b; + } else if (c_prev == 0xdb40 && c>=0xdd00 && c<=0xddef) { + buf[j++] = 0x200b; } else { buf[j++] = c; } diff --git a/WKC/WebCore/platform/graphics/WKC/GraphicsContextWKCCairo.cpp b/WKC/WebCore/platform/graphics/WKC/GraphicsContextWKCCairo.cpp index 5ea484e20..d28fb2b19 100644 --- a/WKC/WebCore/platform/graphics/WKC/GraphicsContextWKCCairo.cpp +++ b/WKC/WebCore/platform/graphics/WKC/GraphicsContextWKCCairo.cpp @@ -7,7 +7,7 @@ * Copyright (C) 2010, 2011 Igalia S.L. * Copyright (C) Research In Motion Limited 2010. All rights reserved. * Copyright (C) 2012, Intel Corporation - * Copyright (c) 2011-2016 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -467,7 +467,7 @@ static void drawLineOnCairoContext(GraphicsContext* graphicsContext, cairo_t* co else if (style == DashedStroke) patternWidth = 3 * strokeThickness; - bool isVerticalLine = (point1.x() + strokeThickness == point2.x()); + bool isVerticalLine = (point1.x() + strokeThickness == point2.x()) && (point1.y() != point2.y()); FloatPoint point1OnPixelBoundaries = point1; FloatPoint point2OnPixelBoundaries = point2; if (strokeThickness==1) { @@ -1265,9 +1265,9 @@ void GraphicsContext::clip(const Path& path, WindRule windRule) m_data->clip(path); } -void GraphicsContext::canvasClip(const Path& path, WindRule) +void GraphicsContext::canvasClip(const Path& path, WindRule windRule) { - clip(path); + clip(path, windRule); } void GraphicsContext::clipOut(const Path& path) diff --git a/WKC/WebCore/platform/graphics/WKC/MediaPlayerPrivateWKC.cpp b/WKC/WebCore/platform/graphics/WKC/MediaPlayerPrivateWKC.cpp index a339cef34..e33a85d0e 100644 --- a/WKC/WebCore/platform/graphics/WKC/MediaPlayerPrivateWKC.cpp +++ b/WKC/WebCore/platform/graphics/WKC/MediaPlayerPrivateWKC.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2017 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -420,6 +420,13 @@ MediaPlayerPrivate::currentTime() const { return wkcMediaPlayerCurrentTimePeer(m_peer); } + +double +MediaPlayerPrivate::currentTimeDouble() const +{ + return wkcMediaPlayerCurrentTimeDoublePeer(m_peer); +} + void MediaPlayerPrivate::seek(float in_time) { diff --git a/WKC/WebCore/platform/graphics/WKC/MediaPlayerPrivateWKC.h b/WKC/WebCore/platform/graphics/WKC/MediaPlayerPrivateWKC.h index 60e6f3033..488f3b575 100644 --- a/WKC/WebCore/platform/graphics/WKC/MediaPlayerPrivateWKC.h +++ b/WKC/WebCore/platform/graphics/WKC/MediaPlayerPrivateWKC.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2017 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -75,6 +75,7 @@ class MediaPlayerPrivate : public MediaPlayerPrivateInterface, public ResourceH virtual double durationDouble() const; virtual float currentTime() const; + virtual double currentTimeDouble() const; virtual void seek(float time); virtual bool seeking() const; diff --git a/WKC/WebCore/platform/graphics/WKC/SourceBufferPrivateWKC.cpp b/WKC/WebCore/platform/graphics/WKC/SourceBufferPrivateWKC.cpp index ff968e31d..78380fad5 100644 --- a/WKC/WebCore/platform/graphics/WKC/SourceBufferPrivateWKC.cpp +++ b/WKC/WebCore/platform/graphics/WKC/SourceBufferPrivateWKC.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2016 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2013-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -41,25 +41,41 @@ namespace WebCore { // AudioTrackPrivate class AudioTrackPrivateWKC : public AudioTrackPrivate { public: - static PassRefPtr create() + static PassRefPtr create(int id) { - return adoptRef(new AudioTrackPrivateWKC()); + return adoptRef(new AudioTrackPrivateWKC(id)); } - virtual AtomicString id() const { return String::format("%d", 1); } + virtual AtomicString id() const { return m_id; } virtual ~AudioTrackPrivateWKC() { } +protected: + AudioTrackPrivateWKC(int id) + : m_id(String::format("%d", id)) + { + } + +private: + AtomicString m_id; }; // VideoTrackPrivate class VideoTrackPrivateWKC : public VideoTrackPrivate { public: - static PassRefPtr create() + static PassRefPtr create(int id) { - return adoptRef(new VideoTrackPrivateWKC()); + return adoptRef(new VideoTrackPrivateWKC(id)); } - virtual AtomicString id() const { return String::format("%d", 1); } + virtual AtomicString id() const { return m_id; } virtual ~VideoTrackPrivateWKC() { } +protected: + VideoTrackPrivateWKC(int id) + : m_id(String::format("%d", id)) + { + } + +private: + AtomicString m_id; }; // MediaDescription @@ -88,7 +104,7 @@ class MediaDescriptionWKC : public MediaDescription { class MediaSampleWKC : public MediaSample { public: - static RefPtr create(double presentationTime, double decodeTime, double duration) { return adoptRef(new MediaSampleWKC(presentationTime, decodeTime, duration)); } + static RefPtr create(int id, int64_t presentationTime, int64_t decodeTime, int64_t duration) { return adoptRef(new MediaSampleWKC(id, presentationTime, decodeTime, duration)); } virtual ~MediaSampleWKC() { } virtual MediaTime presentationTime() const override { return m_presentationTime; } @@ -105,11 +121,11 @@ class MediaSampleWKC : public MediaSample { virtual void dump(PrintStream&) const { } protected: - MediaSampleWKC(double presentationTime, double decodeTime, double duration) - : m_presentationTime(MediaTime::createWithDouble(presentationTime)) - , m_decodeTime(MediaTime::createWithDouble(decodeTime)) - , m_duration(MediaTime::createWithDouble(duration)) - , m_trackID(String::format("%d", 1)) + MediaSampleWKC(int id, int64_t presentationTime, int64_t decodeTime, int64_t duration) + : m_presentationTime(presentationTime, 1000000) + , m_decodeTime(decodeTime, 1000000) + , m_duration(duration, 1000000) + , m_trackID(String::format("%d", id)) { } @@ -220,9 +236,9 @@ SourceBufferPrivateWKC::isFull() } void -SourceBufferPrivateWKC::didReceiveInitializationSegmentProc(void* self, const char* in_codec, int in_kind, double in_duration) +SourceBufferPrivateWKC::didReceiveInitializationSegmentProc(void* self, const WKCMediaTrack* in_tracks, int in_tracks_len, double in_duration) { - static_cast(self)->didReceiveInitializationSegment(in_codec, in_kind, in_duration); + static_cast(self)->didReceiveInitializationSegment(in_tracks, in_tracks_len, in_duration); } void @@ -244,32 +260,35 @@ SourceBufferPrivateWKC::removeCodedFramesProc(void* self, double in_start, doubl } void -SourceBufferPrivateWKC::didReceiveInitializationSegment(const char* in_codec, int in_kind, double in_duration) +SourceBufferPrivateWKC::didReceiveInitializationSegment(const WKCMediaTrack* in_tracks, int in_tracks_len, double in_duration) { SourceBufferPrivateClient::InitializationSegment init_segment; init_segment.duration = MediaTime::createWithDouble(in_duration); - switch (in_kind) { - case WKC_MEDIA_SB_TRACKKIND_AUDIO: - { - SourceBufferPrivateClient::InitializationSegment::AudioTrackInformation info; - info.description = MediaDescriptionWKC::create(in_codec, in_kind); - info.track = AudioTrackPrivateWKC::create(); - init_segment.audioTracks.append(info); - } - break; - case WKC_MEDIA_SB_TRACKKIND_VIDEO: - { - SourceBufferPrivateClient::InitializationSegment::VideoTrackInformation info; - info.description = MediaDescriptionWKC::create(in_codec, in_kind); - info.track = VideoTrackPrivateWKC::create(); - init_segment.videoTracks.append(info); + for (int i = 0; i < in_tracks_len; i++) { + switch (in_tracks[i].fKind) { + case WKC_MEDIA_SB_TRACKKIND_AUDIO: + { + SourceBufferPrivateClient::InitializationSegment::AudioTrackInformation info; + info.description = MediaDescriptionWKC::create(in_tracks[i].fCodec, in_tracks[i].fKind); + info.track = AudioTrackPrivateWKC::create(in_tracks[i].fID); + init_segment.audioTracks.append(info); + } + break; + case WKC_MEDIA_SB_TRACKKIND_VIDEO: + { + SourceBufferPrivateClient::InitializationSegment::VideoTrackInformation info; + info.description = MediaDescriptionWKC::create(in_tracks[i].fCodec, in_tracks[i].fKind); + info.track = VideoTrackPrivateWKC::create(in_tracks[i].fID); + init_segment.videoTracks.append(info); + } + break; + default: + break; } - break; - default: - break; } + if (m_client) { m_client->sourceBufferPrivateDidReceiveInitializationSegment(this, init_segment); } @@ -282,7 +301,7 @@ SourceBufferPrivateWKC::didReceiveSamples(const WKCMediaSample* in_samples, int return; } for (int i = 0; i < in_samples_len; i++) { - m_client->sourceBufferPrivateDidReceiveSample(this, MediaSampleWKC::create(in_samples[i].fPresentationTime, in_samples[i].fDecodeTime, in_samples[i].fDuration)); + m_client->sourceBufferPrivateDidReceiveSample(this, MediaSampleWKC::create(in_samples[i].fID, in_samples[i].fPresentationTime, in_samples[i].fDecodeTime, in_samples[i].fDuration)); } } diff --git a/WKC/WebCore/platform/graphics/WKC/SourceBufferPrivateWKC.h b/WKC/WebCore/platform/graphics/WKC/SourceBufferPrivateWKC.h index cbf11e2b7..a6c39edf6 100644 --- a/WKC/WebCore/platform/graphics/WKC/SourceBufferPrivateWKC.h +++ b/WKC/WebCore/platform/graphics/WKC/SourceBufferPrivateWKC.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2016 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2013-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -55,12 +55,12 @@ class SourceBufferPrivateWKC : public SourceBufferPrivate { virtual void evictCodedFrames(); virtual bool isFull(); - static void didReceiveInitializationSegmentProc(void* self, const char* in_codec, int in_kind, double in_duration); + static void didReceiveInitializationSegmentProc(void* self, const WKCMediaTrack* in_tracks, int in_tracks_len, double in_duration); static void didReceiveSamplesProc(void* self, const WKCMediaSample* in_samples, int in_samples_len); static void appendCompleteProc(void* self, int in_appendresult); static void removeCodedFramesProc(void* self, double in_start, double in_end); - void didReceiveInitializationSegment(const char* in_codec, int in_kind, double in_duration); + void didReceiveInitializationSegment(const WKCMediaTrack* in_tracks, int in_tracks_len, double in_duration); void didReceiveSamples(const WKCMediaSample* in_samples, int in_samples_len); void appendComplete(int in_appendresult); void removeCodedFrames(double in_start, double in_end); diff --git a/WKC/WebCore/platform/network/WKC/HTTPCacheWKC.cpp b/WKC/WebCore/platform/network/WKC/HTTPCacheWKC.cpp index fee09d8c4..b16c9bc87 100644 --- a/WKC/WebCore/platform/network/WKC/HTTPCacheWKC.cpp +++ b/WKC/WebCore/platform/network/WKC/HTTPCacheWKC.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2017 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -57,6 +57,7 @@ HTTPCachedResource::HTTPCachedResource(const String& filename) m_used = false; m_httpequivflags = 0; m_resourceData = nullptr; + m_lastUsedTime = 0; m_expectedContentLength = 0; m_httpStatusCode = 0; @@ -85,6 +86,7 @@ HTTPCachedResource::HTTPCachedResource(const String& filename, const URL &url, c m_used = false; m_serverpushed = serverpush; m_httpequivflags = 0; + m_lastUsedTime = currentTime(); m_contentLength = 0; m_resourceSize = 0; @@ -126,7 +128,7 @@ double HTTPCachedResource::freshnessLifetime() // Heuristic Freshness: // http://tools.ietf.org/html/rfc7234#section-4.2.2 if (isfinite(m_lastModified)) - return (m_date - m_lastModified) * 0.1; + return (dateValue - m_lastModified) * 0.1; } // If no cache headers are present, the specification leaves the decision to the UA. Other browsers seem to opt for 0. @@ -296,7 +298,7 @@ void HTTPCachedResource::calcResourceSize() { size_t size = sizeof(long long) * 2 + sizeof(int) * 7 - + sizeof(double) * 6 + + sizeof(double) * 7 + sizeof(int) + ROUNDUP(m_url.utf8().length(), ROUNDUP_UNIT) + sizeof(int) + ROUNDUP(m_mimeType.utf8().length(), ROUNDUP_UNIT) + sizeof(int) + ROUNDUP(m_textEncodingName.utf8().length(), ROUNDUP_UNIT) @@ -341,6 +343,7 @@ int HTTPCachedResource::serialize(char *buffer) (*(double*)buffer) = m_lastModified; buffer += sizeof(double); (*(double*)buffer) = m_responseTime; buffer += sizeof(double); (*(double*)buffer) = m_age; buffer += sizeof(double); + (*(double*)buffer) = m_lastUsedTime; buffer += sizeof(double); // string field buffer += writeString(buffer, m_url); buffer += writeString(buffer, m_mimeType); @@ -384,6 +387,7 @@ int HTTPCachedResource::deserialize(char *buffer) m_lastModified = (*(double*)buffer); buffer += sizeof(double); m_responseTime = (*(double*)buffer); buffer += sizeof(double); m_age = (*(double*)buffer); buffer += sizeof(double); + m_lastUsedTime = (*(double*)buffer); buffer += sizeof(double); // string field buffer += readString(buffer, m_url); buffer += readString(buffer, m_mimeType); @@ -419,6 +423,14 @@ void HTTPCachedResource::setResourceData(SharedBuffer* resourceData) #define DEFAULT_CONTENTSIZE_LIMIT (10 * 1024 * 1024) #define DEFAULT_TOTALCONTENTSSIZE_LIMIT (10 * 1024 * 1024) +static WKC::CanCacheToDiskProc gCanCacheToDiskCallback; + +void +HTTPCache::setCanCacheToDiskCallback(WKC::CanCacheToDiskProc proc) +{ + gCanCacheToDiskCallback = proc; +} + HTTPCache::HTTPCache() : m_fatFileName(DEFAULT_FAT_FILENAME) , m_filePath(DEFAULT_FILEPATH) @@ -458,6 +470,32 @@ void HTTPCache::reset() m_totalContentsSize = 0; } +void +HTTPCache::appendResourceInSizeOrder(Vector& resourceList, HTTPCachedResource* resource) +{ + size_t len = resourceList.size(); + for (size_t i = 0; i < len; i++) { + if (resource->contentLength() >= resourceList[i]->contentLength()) { + resourceList.insert(i, resource); + return; + } + } + resourceList.append(resource); +} + +void +HTTPCache::appendResourceInLastUsedTimeOrder(Vector& resourceList, HTTPCachedResource* resource) +{ + size_t len = resourceList.size(); + for (int i = len - 1; i >= 0; i--) { + if (resource->lastUsedTime() >= resourceList[i]->lastUsedTime()) { + resourceList.insert(i + 1, resource); + return; + } + } + resourceList.insert(0, resource); +} + HTTPCachedResource* HTTPCache::createHTTPCachedResource(URL &url, SharedBuffer* resourceData, ResourceResponse &response, bool noCache, bool mustRevalidate, double expires, double maxAge, bool serverpush) { if (disabled()) @@ -508,11 +546,29 @@ bool HTTPCache::addCachedResource(HTTPCachedResource *resource) return true; } +void HTTPCache::updateResourceLastUsedTime(HTTPCachedResource *resource) +{ + resource->setLastUsedTime(currentTime()); + + if (!m_resources.get(resource->url())) { + return; + } + + for (size_t i = 0; i < m_resourceList.size(); i++) { + if (m_resourceList[i] == resource) { + m_resourceList.remove(i); + appendResourceInLastUsedTimeOrder(m_resourceList, resource); + return; + } + } +} + void HTTPCache::updateCachedResource(HTTPCachedResource *resource, SharedBuffer* resourceData, ResourceResponse &response, bool noCache, bool mustRevalidate, double expires, double maxAge, bool serverpush) { - resource->setResourceResponse(response, false); + resource->setResourceResponse(response, true); resource->setResourceData(resourceData); resource->update(noCache, mustRevalidate, expires, maxAge, serverpush); + updateResourceLastUsedTime(resource); } void HTTPCache::removeResource(HTTPCachedResource *resource) @@ -793,11 +849,14 @@ bool HTTPCache::write(HTTPCachedResource *resource) if (m_totalContentsSize + contentLength > m_maxTotalContentsSize) purgeBySize(contentLength); + if (gCanCacheToDiskCallback && !gCanCacheToDiskCallback(resource->url().utf8().data(), resource->computeCurrentAge(), resource->freshnessLifetime(), resource->contentLength())) + return false; + if (!resource->writeFile(m_filePath)) return false; m_resources.add(resource->url(), resource); - m_resourceList.append(resource); + appendResourceInLastUsedTimeOrder(m_resourceList, resource); m_totalResourceSize += resource->resourceSize(); m_totalContentsSize += resource->contentLength(); @@ -806,7 +865,11 @@ bool HTTPCache::write(HTTPCachedResource *resource) bool HTTPCache::read(HTTPCachedResource *resource, char *buf) { - return resource->readFile(buf, m_filePath); + bool ret = resource->readFile(buf, m_filePath); + if (ret) { + updateResourceLastUsedTime(resource); + } + return ret; } void HTTPCache::serializeFATData(char *buffer) @@ -836,7 +899,7 @@ bool HTTPCache::deserializeFATData(char *buffer, int length) } #define DEFAULT_CACHEFAT_FILENAME "cache.fat" -#define CACHEFAT_FORMAT_VERSION 6 // Number of int. Increment this if you changed the content format in the fat file. +#define CACHEFAT_FORMAT_VERSION 7 // Number of int. Increment this if you changed the content format in the fat file. #define MD5_DIGESTSIZE 16 @@ -1013,6 +1076,7 @@ HTTPCache::dumpResourceList() nxLog_e("----------"); nxLog_e("Cache %d: %s", i, resource->fileName().utf8().data()); nxLog_e(" URL: %s", resource->url().utf8().data()); + nxLog_e(" last used time: %lf", resource->lastUsedTime()); nxLog_e(" mime type: %s content length: %ld HTTP Status code: %d", resource->mimeType().utf8().data(), resource->contentLength(), resource->httpStatusCode()); nxLog_e(" expires: %lf max-age: %lf", resource->expires(), resource->maxAge()); nxLog_e(" Last-Modified: %s", resource->lastModifiedHeader().utf8().data()); diff --git a/WKC/WebCore/platform/network/WKC/HTTPCacheWKC.h b/WKC/WebCore/platform/network/WKC/HTTPCacheWKC.h index 90f2e2f47..2ab4970f7 100644 --- a/WKC/WebCore/platform/network/WKC/HTTPCacheWKC.h +++ b/WKC/WebCore/platform/network/WKC/HTTPCacheWKC.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2017 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -28,6 +28,7 @@ #include #include #include +#include "WKCWebView.h" namespace WebCore { @@ -69,6 +70,8 @@ WTF_MAKE_FAST_ALLOCATED; inline const String& lastModifiedHeader() const { return m_lastModifiedHeader; } inline const String& eTagHeader() const { return m_eTagHeader; } inline const String& accessControlAllowOriginHeader() const { return m_accessControlAllowOriginHeader; } + inline double lastUsedTime() const { return m_lastUsedTime; } + inline void setLastUsedTime(double time) { m_lastUsedTime = time; } inline bool isSSL() const { return m_isSSL; } inline bool isEVSSL() const { return m_isEVSSL; } @@ -108,6 +111,7 @@ WTF_MAKE_FAST_ALLOCATED; double m_lastModified; double m_responseTime; double m_age; + double m_lastUsedTime; String m_lastModifiedHeader; String m_eTagHeader; String m_fileName; @@ -137,9 +141,14 @@ class HTTPCache { ~HTTPCache(); void reset(); + static void setCanCacheToDiskCallback(WKC::CanCacheToDiskProc proc); + static void appendResourceInSizeOrder(Vector& resourceList, HTTPCachedResource* resource); + static void appendResourceInLastUsedTimeOrder(Vector& resourceList, HTTPCachedResource* resource); + HTTPCachedResource* createHTTPCachedResource(URL &url, SharedBuffer* resourceData, ResourceResponse &response, bool noCache, bool mustRevalidate, double expires, double maxAge, bool serverpush); bool addCachedResource(HTTPCachedResource *resource); void updateCachedResource(HTTPCachedResource *resource, SharedBuffer* resourceData, ResourceResponse &response, bool noCache, bool mustRevalidate, double expires, double maxAge, bool serverpush); + void updateResourceLastUsedTime(HTTPCachedResource *resource); void removeResource(HTTPCachedResource *resource); void removeResourceByNumber(int listNumber); void remove(HTTPCachedResource *resource); diff --git a/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp b/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp index c9f09ebe2..17c386fe0 100644 --- a/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp +++ b/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.cpp @@ -1228,6 +1228,9 @@ size_t ResourceHandleManager::downloadTimerHeaderCallback(ResourceHandle* job, R String location = d->m_response.httpHeaderField(String("location")); if (!location.isEmpty()) { URL newURL = URL(job->firstRequest().url(), location); + if (!newURL.hasFragmentIdentifier() && job->firstRequest().url().hasFragmentIdentifier()) { + newURL.setFragmentIdentifier(job->firstRequest().url().fragmentIdentifier()); + } // delete previous CURLOPT_CUSTOMREQUEST setting (when previous request is POST with nothing have a body) curl_easy_setopt(d->m_handle, CURLOPT_CUSTOMREQUEST, NULL); @@ -2381,11 +2384,13 @@ void ResourceHandleManager::add(ResourceHandle* job) nxLog_i("Async load add [%p] %s", job, kurl.string().latin1().data()); #if ENABLE(WKC_HTTPCACHE) + if (!m_httpCache.disabled() + && job->firstRequest().cachePolicy() != ReloadIgnoringCacheData + && !job->firstRequest().httpHeaderFields().contains(HTTPHeaderName::Range) #if ENABLE(WKC_HTTPCACHE_EXCLUDE_ROOT_CONTENT) - if (!m_httpCache.disabled() && job->firstRequest().cachePolicy() != ReloadIgnoringCacheData && !( kurl.protocolIs("https") && contentComposition(job) == WKC::ERootFrameRootContentComposition) ) { -#else - if (!m_httpCache.disabled() && job->firstRequest().cachePolicy() != ReloadIgnoringCacheData) { + && !( kurl.protocolIs("https") && contentComposition(job) == WKC::ERootFrameRootContentComposition) #endif + ) { HTTPCachedResource *resource = m_httpCache.resourceForURL(kurl); if (resource) { // this resource has been used @@ -4635,7 +4640,7 @@ bool ResourceHandleManager::addHTTPCache(ResourceHandle *handle, URL &url, Share // reset used flag resource->setUsed(false); - m_writeCacheList.append(resource); + HTTPCache::appendResourceInSizeOrder(m_writeCacheList, resource); if (!m_writeCacheTimer.isActive()) { m_writeCacheTimer.startOneShot(pollTimeSeconds); @@ -4892,6 +4897,12 @@ ResourceHandleManager::dumpHTTPCacheResourceList() httpCache()->dumpResourceList(); } +void +ResourceHandleManager::setCanCacheToDiskCallback(WKC::CanCacheToDiskProc proc) +{ + m_httpCache.setCanCacheToDiskCallback(proc); +} + #endif // ENABLE(WKC_HTTPCACHE) // diff --git a/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.h b/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.h index 6453f1829..f60f31f24 100644 --- a/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.h +++ b/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKC.h @@ -2,7 +2,7 @@ * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com * All rights reserved. - * Copyright (c) 2010-2017 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2010-2018 ACCESS CO., LTD. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -36,6 +36,7 @@ #include "ResourceHandleClient.h" #include "AuthenticationJarWKC.h" #include "HTTPCacheWKC.h" +#include "WKCWebView.h" #if PLATFORM(WIN) #include @@ -184,6 +185,7 @@ WTF_MAKE_FAST_ALLOCATED; void resetHTTPCache(); void processHttpEquiv(const String& content, const URL& url, bool cachecontrol); void dumpHTTPCacheResourceList(); + void setCanCacheToDiskCallback(WKC::CanCacheToDiskProc proc); #endif bool isMatchProxyFilter(const String& host); diff --git a/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKCSSL.cpp b/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKCSSL.cpp index 2c09e6723..4ba13d48a 100644 --- a/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKCSSL.cpp +++ b/WKC/WebCore/platform/network/WKC/ResourceHandleManagerWKCSSL.cpp @@ -421,6 +421,10 @@ ResourceHandleManagerSSL::~ResourceHandleManagerSSL() curl_easy_cleanup(m_ocspHandle); clearRootCACache(); + + for (auto& elem : m_serverCertChain) { + delete elem.value; + } m_serverCertChain.clear(); m_clientCertCache.clear(); SSLClientCertDeleteAll(); @@ -1568,6 +1572,11 @@ void ResourceHandleManagerSSL::addServerCertChain(const char* url, STACK_OF(X50 URL kurl = URL(ParsedURLString, url); String hostPort = SSLhostAndPort(kurl); + auto oldCert = m_serverCertChain.find(hostPort); + if (oldCert != m_serverCertChain.end()) { + delete oldCert->value; + } + m_serverCertChain.set(hostPort, chain); int num = m_serverCertChain.size(); @@ -1585,6 +1594,7 @@ void ResourceHandleManagerSSL::addServerCertChain(const char* url, STACK_OF(X50 keep = it; } } + delete keep->value; m_serverCertChain.remove(keep); } return; diff --git a/WKC/WebCore/platform/network/WKC/SocketStreamHandleWKC.cpp b/WKC/WebCore/platform/network/WKC/SocketStreamHandleWKC.cpp index 90fba0ab2..5cfc9ce9c 100644 --- a/WKC/WebCore/platform/network/WKC/SocketStreamHandleWKC.cpp +++ b/WKC/WebCore/platform/network/WKC/SocketStreamHandleWKC.cpp @@ -275,7 +275,6 @@ void SocketStreamHandle::construct(void) // add handle curl_multi_add_handle(multiHandle, handle); - curl_easy_setopt(handle, CURLOPT_MULTI_EASY, multiHandle); m_multiHandle = (void*)multiHandle; m_handle = (void*)handle; diff --git a/WKC/WebKit/WKC/helpers/WKCHTMLFormControlElement.h b/WKC/WebKit/WKC/helpers/WKCHTMLFormControlElement.h index 9892420d3..965285b01 100644 --- a/WKC/WebKit/WKC/helpers/WKCHTMLFormControlElement.h +++ b/WKC/WebKit/WKC/helpers/WKCHTMLFormControlElement.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2017 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -34,7 +34,9 @@ class WKC_API HTMLFormControlElement : public HTMLElement { void dispatchFormControlInputEvent(); void dispatchFormControlChangeEvent(); const AtomicString& type() const; - + bool isDisabledFormControl() const; + bool isReadOnly() const; + bool isDisabledOrReadOnly() const; HTMLFormElement* form() const; protected: diff --git a/WKC/WebKit/WKC/helpers/WKCHTMLInputElement.h b/WKC/WebKit/WKC/helpers/WKCHTMLInputElement.h index 19785b646..44bc571dd 100644 --- a/WKC/WebKit/WKC/helpers/WKCHTMLInputElement.h +++ b/WKC/WebKit/WKC/helpers/WKCHTMLInputElement.h @@ -3,7 +3,7 @@ * (C) 1999 Antti Koivisto (koivisto@kde.org) * (C) 2000 Dirk Mueller (mueller@kde.org) * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. - * Copyright (c) 2010-2015 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2010-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -37,8 +37,6 @@ class String; class WKC_API HTMLInputElement : public WKC::HTMLFormControlElement { public: const String value() const; - bool readOnly() const; - bool disabled() const; int maxLength() const; void setValue(const String&, bool sendChangeEvent = false); bool shouldAutocomplete() const; diff --git a/WKC/WebKit/WKC/helpers/WKCHTMLTextAreaElement.h b/WKC/WebKit/WKC/helpers/WKCHTMLTextAreaElement.h index 8666bfd71..a76b40ce7 100644 --- a/WKC/WebKit/WKC/helpers/WKCHTMLTextAreaElement.h +++ b/WKC/WebKit/WKC/helpers/WKCHTMLTextAreaElement.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2014 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -32,8 +32,6 @@ class String; class WKC_API HTMLTextAreaElement : public WKC::HTMLFormControlElement { public: const String value() const; - bool readOnly() const; - bool disabled() const; int maxLength() const; void setValue(const String&); diff --git a/WKC/WebKit/WKC/helpers/WKCNode.h b/WKC/WebKit/WKC/helpers/WKCNode.h index 1ee1da1dc..d20bf4f59 100644 --- a/WKC/WebKit/WKC/helpers/WKCNode.h +++ b/WKC/WebKit/WKC/helpers/WKCNode.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2017 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -104,11 +104,18 @@ class WKC_API Node { bool isScrollableOverFlowBlockNode() const; void getNodeCompositeRect(WKCRect* rect, int tx = 0, int ty = 0); + // NOTE: NodeList needs to be freed by calling release() on the application side. NodeList* getElementsByTagName(const String&); - NodeList* querySelectorAll(const String&); + Element* querySelector(const String& selectors); + NodeList* querySelectorAll(const String& selectors); Element* parentOrShadowHostElement(); + void showNode(const char* prefix = "") const; + void showTreeForThis() const; + void showNodePathForThis() const; + void showTreeForThisAcrossFrame() const; + protected: // Applications must not create/destroy WKC helper instances by new/delete. // Or, it causes memory leaks or crashes. diff --git a/WKC/WebKit/WKC/helpers/WKCTextTrack.h b/WKC/WebKit/WKC/helpers/WKCTextTrack.h index 2ff9080f1..aa0672166 100644 --- a/WKC/WebKit/WKC/helpers/WKCTextTrack.h +++ b/WKC/WebKit/WKC/helpers/WKCTextTrack.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2014 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2013-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -39,7 +39,7 @@ class WKC_API TextTrack { String kind() const; String label() const; String language() const; - bool showingByDefault() const; + bool isDefault() const; TextTrackCueList* cues(); TextTrackPrivate& priv() { return m_private; } diff --git a/WKC/WebKit/WKC/helpers/privates/WKCHTMLFormControlElement.cpp b/WKC/WebKit/WKC/helpers/privates/WKCHTMLFormControlElement.cpp index 3d143f4a8..a7b232b70 100644 --- a/WKC/WebKit/WKC/helpers/privates/WKCHTMLFormControlElement.cpp +++ b/WKC/WebKit/WKC/helpers/privates/WKCHTMLFormControlElement.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2017 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -87,6 +87,24 @@ HTMLFormControlElementPrivate::type() return m_atomicstring_priv->wkc(); } +bool +HTMLFormControlElementPrivate::isDisabledFormControl() +{ + return webcore()->isDisabledFormControl(); +} + +bool +HTMLFormControlElementPrivate::isReadOnly() +{ + return webcore()->isReadOnly(); +} + +bool +HTMLFormControlElementPrivate::isDisabledOrReadOnly() +{ + return webcore()->isDisabledOrReadOnly(); +} + //////////////////////////////////////////////////////////////////////////////// HTMLFormControlElement::HTMLFormControlElement(HTMLFormControlElementPrivate& parent) @@ -112,6 +130,24 @@ HTMLFormControlElement::type() const return static_cast(priv()).type(); } +bool +HTMLFormControlElement::isDisabledFormControl() const +{ + return static_cast(priv()).isDisabledFormControl(); +} + +bool +HTMLFormControlElement::isReadOnly() const +{ + return static_cast(priv()).isReadOnly(); +} + +bool +HTMLFormControlElement::isDisabledOrReadOnly() const +{ + return static_cast(priv()).isDisabledOrReadOnly(); +} + HTMLFormElement* HTMLFormControlElement::form() const { diff --git a/WKC/WebKit/WKC/helpers/privates/WKCHTMLFormControlElementPrivate.h b/WKC/WebKit/WKC/helpers/privates/WKCHTMLFormControlElementPrivate.h index 8255d3df8..5bfd5e8d6 100644 --- a/WKC/WebKit/WKC/helpers/privates/WKCHTMLFormControlElementPrivate.h +++ b/WKC/WebKit/WKC/helpers/privates/WKCHTMLFormControlElementPrivate.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2017 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -53,6 +53,9 @@ WTF_MAKE_FAST_ALLOCATED; void dispatchFormControlInputEvent(); void dispatchFormControlChangeEvent(); const AtomicString& type(); + bool isDisabledFormControl(); + bool isReadOnly(); + bool isDisabledOrReadOnly(); private: HTMLFormControlElementWrap m_wkc; diff --git a/WKC/WebKit/WKC/helpers/privates/WKCHTMLInputElement.cpp b/WKC/WebKit/WKC/helpers/privates/WKCHTMLInputElement.cpp index a7fc2a4e1..a9cfdca70 100644 --- a/WKC/WebKit/WKC/helpers/privates/WKCHTMLInputElement.cpp +++ b/WKC/WebKit/WKC/helpers/privates/WKCHTMLInputElement.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2015 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -53,22 +53,6 @@ HTMLInputElementPrivate::value() const return webcore()->value(); } -bool -HTMLInputElementPrivate::readOnly() const -{ - if (!webcore()) - return false; - return webcore()->isReadOnly(); -} - -bool -HTMLInputElementPrivate::disabled() const -{ - if (!webcore()) - return false; - return webcore()->isDisabledOrReadOnly(); -} - int HTMLInputElementPrivate::maxLength() const { @@ -262,18 +246,6 @@ HTMLInputElement::value() const return static_cast(priv()).value(); } -bool -HTMLInputElement::readOnly() const -{ - return static_cast(priv()).readOnly(); -} - -bool -HTMLInputElement::disabled() const -{ - return static_cast(priv()).disabled(); -} - int HTMLInputElement::maxLength() const { diff --git a/WKC/WebKit/WKC/helpers/privates/WKCHTMLInputElementPrivate.h b/WKC/WebKit/WKC/helpers/privates/WKCHTMLInputElementPrivate.h index 255402600..56218d5f5 100644 --- a/WKC/WebKit/WKC/helpers/privates/WKCHTMLInputElementPrivate.h +++ b/WKC/WebKit/WKC/helpers/privates/WKCHTMLInputElementPrivate.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2015 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -46,8 +46,6 @@ WTF_MAKE_FAST_ALLOCATED; HTMLInputElement& wkc() { return m_wkc; } String value() const; - bool readOnly() const; - bool disabled() const; int maxLength() const; void setValue(const String&, bool sendChangeEvent = false); bool shouldAutocomplete() const; diff --git a/WKC/WebKit/WKC/helpers/privates/WKCHTMLTextAreaElement.cpp b/WKC/WebKit/WKC/helpers/privates/WKCHTMLTextAreaElement.cpp index ff44b59e6..7c67f020c 100644 --- a/WKC/WebKit/WKC/helpers/privates/WKCHTMLTextAreaElement.cpp +++ b/WKC/WebKit/WKC/helpers/privates/WKCHTMLTextAreaElement.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2015 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -50,18 +50,6 @@ HTMLTextAreaElementPrivate::value() const return webcore()->value(); } -bool -HTMLTextAreaElementPrivate::readOnly() const -{ - return webcore()->isReadOnly(); -} - -bool -HTMLTextAreaElementPrivate::disabled() const -{ - return webcore()->isDisabledOrReadOnly(); -} - int HTMLTextAreaElementPrivate::maxLength() const { @@ -87,18 +75,6 @@ HTMLTextAreaElement::value() const return static_cast(priv()).value(); } -bool -HTMLTextAreaElement::readOnly() const -{ - return static_cast(priv()).readOnly(); -} - -bool -HTMLTextAreaElement::disabled() const -{ - return static_cast(priv()).disabled(); -} - int HTMLTextAreaElement::maxLength() const { diff --git a/WKC/WebKit/WKC/helpers/privates/WKCHTMLTextAreaElementPrivate.h b/WKC/WebKit/WKC/helpers/privates/WKCHTMLTextAreaElementPrivate.h index 81057386a..1268047cc 100644 --- a/WKC/WebKit/WKC/helpers/privates/WKCHTMLTextAreaElementPrivate.h +++ b/WKC/WebKit/WKC/helpers/privates/WKCHTMLTextAreaElementPrivate.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2015 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -46,8 +46,6 @@ WTF_MAKE_FAST_ALLOCATED; HTMLTextAreaElement& wkc() { return m_wkc; } String value() const; - bool readOnly() const; - bool disabled() const; int maxLength() const; void setValue(const String&); diff --git a/WKC/WebKit/WKC/helpers/privates/WKCNode.cpp b/WKC/WebKit/WKC/helpers/privates/WKCNode.cpp index 3f0bbcb09..345cf064c 100644 --- a/WKC/WebKit/WKC/helpers/privates/WKCNode.cpp +++ b/WKC/WebKit/WKC/helpers/privates/WKCNode.cpp @@ -108,6 +108,7 @@ NodePrivate::NodePrivate(WebCore::Node* parent) , m_shadowHost(0) , m_HTMLElement(0) , m_parentOrShadowHostElement(0) + , m_querySelectorElement(0) { } @@ -138,6 +139,8 @@ NodePrivate::~NodePrivate() delete m_HTMLElement; if (m_parentOrShadowHostElement) delete m_parentOrShadowHostElement; + if (m_querySelectorElement) + delete m_querySelectorElement; } WebCore::Node* @@ -368,6 +371,23 @@ NodePrivate::getElementsByTagName(const String& localName) return &nodeList->wkc(); } +Element* +NodePrivate::querySelector(const String& selectors) +{ + if (!m_webcore) + return 0; + + WebCore::ExceptionCode ec; + WebCore::Element* elem = ((WebCore::ContainerNode *)m_webcore)->querySelector(selectors, ec); + if (!elem) + return 0; + if (!m_querySelectorElement || m_querySelectorElement->webcore() != elem) { + delete m_querySelectorElement; + m_querySelectorElement = ElementPrivate::create(elem); + } + return &m_querySelectorElement->wkc(); +} + NodeList* NodePrivate::querySelectorAll(const String& selectors) { @@ -504,7 +524,39 @@ NodePrivate::parentOrShadowHostElement() } return &m_parentOrShadowHostElement->wkc(); } - + +void +NodePrivate::showNode(const char* prefix) const +{ +#if ENABLE(TREE_DEBUGGING) + webcore()->showNode(prefix); +#endif +} + +void +NodePrivate::showTreeForThis() const +{ +#if ENABLE(TREE_DEBUGGING) + webcore()->showTreeForThis(); +#endif +} + +void +NodePrivate::showNodePathForThis() const +{ +#if ENABLE(TREE_DEBUGGING) + webcore()->showNodePathForThis(); +#endif +} + +void +NodePrivate::showTreeForThisAcrossFrame() const +{ +#if ENABLE(TREE_DEBUGGING) + webcore()->showTreeForThisAcrossFrame(); +#endif +} + //////////////////////////////////////////////////////////////////////////////// Node* @@ -712,6 +764,12 @@ Node::getElementsByTagName(const String& localName) return m_private.getElementsByTagName(localName); } +Element* +Node::querySelector(const String& selectors) +{ + return m_private.querySelector(selectors); +} + NodeList* Node::querySelectorAll(const String& selectors) { @@ -724,4 +782,28 @@ Node::parentOrShadowHostElement() return priv().parentOrShadowHostElement(); } +void +Node::showNode(const char* prefix) const +{ + priv().showNode(prefix); +} + +void +Node::showTreeForThis() const +{ + priv().showTreeForThis(); +} + +void +Node::showNodePathForThis() const +{ + priv().showNodePathForThis(); +} + +void +Node::showTreeForThisAcrossFrame() const +{ + priv().showTreeForThisAcrossFrame(); +} + } // namespace diff --git a/WKC/WebKit/WKC/helpers/privates/WKCNodePrivate.h b/WKC/WebKit/WKC/helpers/privates/WKCNodePrivate.h index 47342867d..5987e9dd7 100644 --- a/WKC/WebKit/WKC/helpers/privates/WKCNodePrivate.h +++ b/WKC/WebKit/WKC/helpers/privates/WKCNodePrivate.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2017 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -93,10 +93,16 @@ WTF_MAKE_FAST_ALLOCATED; void getNodeCompositeRect(WKCRect* rect, int tx = 0, int ty = 0); NodeList* getElementsByTagName(const String&); - NodeList* querySelectorAll(const String&); + Element* querySelector(const String& selectors); + NodeList* querySelectorAll(const String& selectors); Element* parentOrShadowHostElement(); + void showNode(const char* prefix) const; + void showTreeForThis() const; + void showNodePathForThis() const; + void showTreeForThisAcrossFrame() const; + private: friend class ElementPrivate; friend class DocumentPrivate; @@ -117,12 +123,9 @@ WTF_MAKE_FAST_ALLOCATED; NodePrivate* m_traverseNextNode; NodePrivate* m_traverseNextSibling; ElementPrivate* m_shadowHost; - HTMLElementPrivate* m_HTMLElement; - NodeListPrivate* m_nodeList; - NodeListPrivate* m_querySelectorNodeList; - ElementPrivate* m_parentOrShadowHostElement; + ElementPrivate* m_querySelectorElement; }; } // namespace diff --git a/WKC/WebKit/WKC/helpers/privates/WKCTextTrack.cpp b/WKC/WebKit/WKC/helpers/privates/WKCTextTrack.cpp index 74b422508..d52f6e019 100644 --- a/WKC/WebKit/WKC/helpers/privates/WKCTextTrack.cpp +++ b/WKC/WebKit/WKC/helpers/privates/WKCTextTrack.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2014 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2013-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -61,10 +61,9 @@ TextTrackPrivate::language() const } bool -TextTrackPrivate::showingByDefault() const +TextTrackPrivate::isDefault() const { - notImplemented(); - return false; + return m_webcore->isDefault(); } TextTrackCueList* @@ -137,9 +136,9 @@ TextTrack::language() const } bool -TextTrack::showingByDefault() const +TextTrack::isDefault() const { - return m_private.showingByDefault(); + return m_private.isDefault(); } TextTrackCueList* diff --git a/WKC/WebKit/WKC/helpers/privates/WKCTextTrackPrivate.h b/WKC/WebKit/WKC/helpers/privates/WKCTextTrackPrivate.h index de7085312..6198d72ad 100644 --- a/WKC/WebKit/WKC/helpers/privates/WKCTextTrackPrivate.h +++ b/WKC/WebKit/WKC/helpers/privates/WKCTextTrackPrivate.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2015 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2013-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -42,7 +42,7 @@ class TextTrackPrivate { String kind() const; String label() const; String language() const; - bool showingByDefault() const; + bool isDefault() const; TextTrackCueList* cues(); private: diff --git a/WKC/WebKit/WKC/webkit/WKCMemoryInfo.cpp b/WKC/WebKit/WKC/webkit/WKCMemoryInfo.cpp index 5186b0642..e3d7a0723 100644 --- a/WKC/WebKit/WKC/webkit/WKCMemoryInfo.cpp +++ b/WKC/WebKit/WKC/webkit/WKCMemoryInfo.cpp @@ -1,7 +1,7 @@ /* * WKCMemoryInfo.cpp * - * Copyright (c) 2011-2015 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -40,7 +40,8 @@ GetStatistics(Statistics& stat, size_t requestSize) wkcHeapStatisticsPeer(*(WKCHeapStatistics*)&stat, requestSize); } -size_t GetStatisticsFreeSizeInHeap() +size_t +GetStatisticsFreeSizeInHeap() { return wkcHeapStatisticsFreeSizeInHeapPeer(); } @@ -51,6 +52,12 @@ GetStatisticsMaxFreeBlockSizeInHeap(size_t requestSize) return wkcHeapStatisticsMaxFreeBlockSizeInHeapPeer(requestSize); } +size_t +GetStatisticsCurrentPhysicalMemoryUsage() +{ + return wkcMemoryGetCurrentPhysicalMemoryUsagePeer(); +} + bool EnableMemoryMap(bool in_set) diff --git a/WKC/WebKit/WKC/webkit/WKCMemoryInfo.h b/WKC/WebKit/WKC/webkit/WKCMemoryInfo.h index fa1f51d1c..60d977d47 100644 --- a/WKC/WebKit/WKC/webkit/WKCMemoryInfo.h +++ b/WKC/WebKit/WKC/webkit/WKCMemoryInfo.h @@ -1,7 +1,7 @@ /* * WKCMemoryInfo.h * - * Copyright (c) 2011-2015 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2011-2018 ACCESS CO., LTD. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -265,8 +265,13 @@ struct Statistics_ { size_t* largeFreeSizeInHeap; /** @brief Current heap usage (See note) */ size_t currentHeapUsage; + /** @brief Current physical memory usage */ + size_t currentPhysicalMemoryUsage; /** @brief Maximum heap usage (See note) */ size_t maxHeapUsage; + size_t allocFailureCount; + size_t allocFailureMinSize; + size_t allocFailureTotalSize; /* - note - * It does not include the amount of heap allocated to the cache in this calculation. * The reason is as follows: @@ -293,6 +298,7 @@ WKC_API void GetStatistics(Statistics& stat, size_t requestSize = 0); WKC_API size_t GetStatisticsFreeSizeInHeap(); WKC_API size_t GetStatisticsMaxFreeBlockSizeInHeap(size_t requestSize = 0); +WKC_API size_t GetStatisticsCurrentPhysicalMemoryUsage(); /** @brief Enables / disables memory map function of engine heap diff --git a/WKC/WebKit/WKC/webkit/WKCVersion.h b/WKC/WebKit/WKC/webkit/WKCVersion.h index 5f9bc42b5..1a4eacd21 100644 --- a/WKC/WebKit/WKC/webkit/WKCVersion.h +++ b/WKC/WebKit/WKC/webkit/WKCVersion.h @@ -29,7 +29,7 @@ #define WKC_VERSION_CHECK(major, minor, micro) \ (((major)*10000) + ((minor)*100) + (micro)) >= ((WKC_VERSION_MAJOR*10000) + (WKC_VERSION_MINOR*100) + (WKC_VERSION_MICRO)) -#define WKC_CUSTOMER_RELEASE_VERSION "0.9.3" +#define WKC_CUSTOMER_RELEASE_VERSION "0.10.13" #define WKC_WEBKIT_VERSION "601.6" diff --git a/WKC/WebKit/WKC/webkit/WKCWebView.cpp b/WKC/WebKit/WKC/webkit/WKCWebView.cpp index 9abf39615..1c25fb937 100644 --- a/WKC/WebKit/WKC/webkit/WKCWebView.cpp +++ b/WKC/WebKit/WKC/webkit/WKCWebView.cpp @@ -88,6 +88,7 @@ #include "VibrationClient.h" #include "VibrationClientWKC.h" #endif +#include "RenderTreeAsText.h" #include @@ -102,10 +103,12 @@ #include "WKCOverlayPrivate.h" +#include "helpers/WKCFrame.h" #include "helpers/WKCHistoryItem.h" #include "helpers/WKCNode.h" #include "helpers/WKCSettings.h" #include "helpers/privates/WKCElementPrivate.h" +#include "helpers/privates/WKCFramePrivate.h" #include "helpers/privates/WKCHelpersEnumsPrivate.h" #include "helpers/privates/WKCHistoryItemPrivate.h" #include "helpers/privates/WKCResourceHandlePrivate.h" @@ -644,6 +647,7 @@ WKCWebViewPrivate::construct() settings->setAcceleratedCompositingEnabled(false); settings->setAcceleratedCompositingForFixedPositionEnabled(false); settings->setAcceleratedCompositingForOverflowScrollEnabled(false); + settings->setFixedPositionCreatesStackingContext(true); settings->setExperimentalNotificationsEnabled(false); @@ -3704,7 +3708,7 @@ shouldInterruptJavaScript(JSC::ExecState*, void*, void*) } bool -WKCWebKitInitialize(void* memory, unsigned int memory_size, void* font_memory, unsigned int font_memory_size, WKCMemoryEventHandler& memory_event_handler, WKCTimerEventHandler& timer_event_handler) +WKCWebKitInitialize(void* memory, size_t physical_memory_size, size_t virtual_memory_size, void* font_memory, size_t font_memory_size, WKCMemoryEventHandler& memory_event_handler, WKCTimerEventHandler& timer_event_handler) { NX_DP(("WKCWebKitInitialize Enter\n")); @@ -3762,7 +3766,7 @@ WKCWebKitInitialize(void* memory, unsigned int memory_size, void* font_memory, u wkcFontSetNotifyNoMemoryProcPeer(WKCWebKitNotifyFontNoMemory); - wkcHeapInitializePeer(memory, memory_size); + wkcHeapInitializePeer(memory, physical_memory_size, virtual_memory_size); wkcDrawContextInitializePeer(); @@ -3771,6 +3775,7 @@ WKCWebKitInitialize(void* memory, unsigned int memory_size, void* font_memory, u #if !LOG_DISABLED WebCore::initializeLoggingChannelsIfNecessary(); #endif + JSC::Options::forceRAMSize() = wkcHeapGetPhysicalHeapTotalSizePeer(); if (!wkcFileInitializePeer()) return false; @@ -4332,8 +4337,6 @@ WKCWebKitForceTerminate() wkcMediaPlayerForceTerminatePeer(); - WKC::WKCWebView::EPUB::forceTerminate(); - WKC::WKCPrefs::forceTerminate(); WKC::WKCWebViewPrefs::forceTerminate(); @@ -4354,8 +4357,11 @@ WKCWebKitForceTerminate() wkcDrawContextForceTerminatePeer(); wkcSSLForceTerminatePeer(); wkcNetForceTerminatePeer(); - wkcFileForceTerminatePeer(); + wkcThreadForceTerminatePeer(); + + WKC::WKCWebView::EPUB::forceTerminate(); + wkcFileForceTerminatePeer(); wkcTimerForceTerminatePeer(); wkcHeapForceTerminatePeer(); wkcMemoryForceTerminatePeer(); @@ -5173,8 +5179,10 @@ WKCWebKitSetPerformanceMode(int in_mode) void WKCWebViewPrivate::recalcStyleSheet() { - WebCore::Page* page = core(); - page->mainFrame().document()->styleResolverChanged(WebCore::StyleResolverUpdateFlag::RecalcStyleImmediately); + WebCore::Frame* mainFrame = &core()->mainFrame(); + for (WebCore::Frame* frame = mainFrame; frame; frame = frame->tree().traverseNext()) { + frame->document()->styleResolverChanged(WebCore::StyleResolverUpdateFlag::RecalcStyleImmediately); + } } void @@ -5183,6 +5191,31 @@ WKCWebView::recalcStyleSheet() m_private->recalcStyleSheet(); } +void +WKCWebView::dumpExternalRepresentation(Frame* frame) +{ + if (!frame) { + return; + } + WTF::String output = WebCore::externalRepresentation(frame->priv().webcore(), WebCore::RenderAsTextShowAllLayers + | WebCore::RenderAsTextShowLayerNesting + | WebCore::RenderAsTextShowCompositedLayers + | WebCore::RenderAsTextShowAddresses + | WebCore::RenderAsTextShowIDAndClass + | WebCore::RenderAsTextDontUpdateLayout + | WebCore::RenderAsTextShowLayoutState + | WebCore::RenderAsTextShowOverflow); + fprintf(stderr, "%s\n", output.utf8().data()); +} + +void +WKCWebView::getCurrentFocusPoint(int& x, int& y) +{ + WebCore::LayoutPoint p = m_private->core()->focusController().getLastEntryPoint(); + x = p.x(); + y = p.y(); +} + // cancel range input dragging mode. void @@ -5191,6 +5224,14 @@ WKCWebKitCancelRangeInputDragging() WebCore::SliderThumbElement::cancelDragging(); } +void +WKCWebKitSetCanCacheToDiskCallback(CanCacheToDiskProc in_proc) +{ +#if ENABLE(WKC_HTTPCACHE) + WebCore::ResourceHandleManager::sharedInstance()->setCanCacheToDiskCallback(in_proc); +#endif +} + // dump HTTPCache list (for Debug) void diff --git a/WKC/WebKit/WKC/webkit/WKCWebView.h b/WKC/WebKit/WKC/webkit/WKCWebView.h index d8704f1e0..21507133e 100644 --- a/WKC/WebKit/WKC/webkit/WKCWebView.h +++ b/WKC/WebKit/WKC/webkit/WKCWebView.h @@ -45,6 +45,7 @@ // prototypes namespace WKC { class Element; +class Frame; class Node; class HistoryItem; class Page; @@ -189,6 +190,15 @@ namespace WKC { typedef void (*SetThreadPriorityProc)(const char* in_name, int* out_priority, int* out_core); typedef void (*FontNoMemoryProc)(); typedef void (*GetCurrentTimeProc)(wkc_int64* out_posixtime); + /** + @brief callback to determine if it is possible to save a cache data to the disk + @param in_url url + @param in_current_age The time that has passed since the cache's response was generated by, or successfully validated with, the origin server + @param in_freshness_lifetime The length of time between the cache's response's generation by the origin server and its expiration time + @retval "!= false" Can be cached to the disk + @retval "== false" Cannot be cached to the disk + */ + typedef bool (*CanCacheToDiskProc)(const char* in_url, double in_current_age, double in_freshness_lifetime, long long in_content_size); typedef struct WebGLTextureCallbacks_ { bool (*fTextureMakeProc)(int num, unsigned int* out_textures); @@ -207,7 +217,8 @@ namespace WKC { /** @brief Initializes browser engine @param memory Pointer to heap memory for browser engine -@param memory_size Size of heap memory for browser engine (bytes) +@param physical_memory_size Size of physical memory for browser engine (bytes) +@param virtual_memory_size Size of virtual memory for browser engine (bytes) @param font_memory Pointer to heap memory for font engine @param font_memory_size Size of heap memory for font engine (bytes) @param memory_event_handler Reference to WKC::WKCMemoryEventHandler @@ -216,13 +227,15 @@ namespace WKC { @retval "== false" Failed to initialize @details The heap memory for the browser engine must be set to a value of 10MB or higher.@n +If virtual_memory_size is not zero, the browser engine runs on the virtual memory system. +In that case, memory, physical_memory_size and virtual_memory_size must be aligned on your system page size. The heap memory for the font engine must be set to an appropriate value of 256KB or higher, or 0(in case disable font engine). Considering trade-offs with performance, 512KB is the recommended value for the size. If font_memory and its size is 0, the font engine become disabled and no text drawn. @attention The method of setting heap memory for the font engine may change in the future. */ -WKC_API bool WKCWebKitInitialize(void* memory, unsigned int memory_size, void* font_memory, unsigned int font_memory_size, WKCMemoryEventHandler& memory_event_handler, WKCTimerEventHandler& timer_event_handler); +WKC_API bool WKCWebKitInitialize(void* memory, size_t physical_memory_size, size_t virtual_memory_size, void* font_memory, size_t font_memory_size, WKCMemoryEventHandler& memory_event_handler, WKCTimerEventHandler& timer_event_handler); /** @brief Terminates browser engine @return None @@ -903,6 +916,14 @@ This API must be called BEFORE WKC::WKCWebView::WKCWebKitInitialize is called. */ WKC_API void WKCWebKitSetWatchdogInterval(int in_interval_ms); +/** +@brief Sets a callback to determine if it is possible to save a cache data to the disk +@param in_proc callback +@details +Sets a callback to determine if it is possible to save a cache data to the disk. +*/ +WKC_API void WKCWebKitSetCanCacheToDiskCallback(CanCacheToDiskProc in_proc); + /** @brief Dump HTTP Cache info. @details @@ -2219,6 +2240,16 @@ class WKC_API WKCWebView */ void recalcStyleSheet(); + // for debug + /** + @brief Dump render tree of a frame. + */ + void dumpExternalRepresentation(Frame* frame); + /** + @brief Get the current focus point in content coordinate system. + */ + void getCurrentFocusPoint(int& x, int& y); + // EPUB class class WKC_API EPUB { public: diff --git a/WKC/include/wkc/wkcdebugpeer.h b/WKC/include/wkc/wkcdebugpeer.h index afa679ed0..109d8b881 100644 --- a/WKC/include/wkc/wkcdebugpeer.h +++ b/WKC/include/wkc/wkcdebugpeer.h @@ -34,6 +34,9 @@ WKC_PEER_API void wkcSetReportArrowFunctionCallbackPeer(void(*callback)()); WKC_PEER_API void wkcReportArrowFunctionThisPeer(); WKC_PEER_API void wkcSetReportArrowFunctionThisCallbackPeer(void(*callback)()); +WKC_PEER_API void wkcReportAllocFailurePeer(unsigned int size, unsigned int count, unsigned int metaDataUsageSize); +WKC_PEER_API void wkcSetReportAllocFailureCallbackPeer(void(*callback)(unsigned int, unsigned int, unsigned int)); + #ifdef __cplusplus } #endif diff --git a/WKC/include/wkc/wkcheappeer.h b/WKC/include/wkc/wkcheappeer.h index 15cb8f38a..cdc901670 100644 --- a/WKC/include/wkc/wkcheappeer.h +++ b/WKC/include/wkc/wkcheappeer.h @@ -43,7 +43,11 @@ typedef struct WKCHeapStatistics_ { size_t maxHeapSize; size_t* largeFreeSizeInHeap; // Large List for Large Memories (Translated into array) size_t currentHeapUsage; + size_t currentPhysicalMemoryUsage; size_t maxHeapUsage; + size_t allocFailureCount; + size_t allocFailureMinSize; + size_t allocFailureTotalSize; } WKCHeapStatistics; WKC_PEER_API void* wkcHeapCallocPeer(size_t p,size_t n); @@ -55,11 +59,12 @@ WKC_PEER_API char* wkcHeapStrDupPeer(const char* src); WKC_PEER_API void* wkcHeapZeroedMallocPeer(size_t n); WKC_PEER_API void wkcHeapForbidPeer(); WKC_PEER_API void wkcHeapAllowPeer(); -WKC_PEER_API void wkcHeapInitializePeer(void* in_memory, size_t in_memory_size); +WKC_PEER_API void wkcHeapInitializePeer(void* in_memory, size_t in_physical_memory_size, size_t in_virtual_memory_size); WKC_PEER_API void wkcHeapFinalizePeer(); WKC_PEER_API void wkcHeapForceTerminatePeer(); WKC_PEER_API void wkcHeapResetMaxHeapUsagePeer(); WKC_PEER_API size_t wkcHeapGetHeapTotalSizePeer(); +WKC_PEER_API size_t wkcHeapGetPhysicalHeapTotalSizePeer(); WKC_PEER_API size_t wkcHeapGetHeapAvailableSizePeer(); WKC_PEER_API size_t wkcHeapGetHeapMaxAvailableBlockSizePeer(); WKC_PEER_API size_t wkcHeapGetHeapTotalSizeForExecutableRegionPeer(); @@ -74,7 +79,7 @@ WKC_PEER_API void wkcHeapFreeAlignedPeer(void* p, size_t size); WKC_PEER_API void* wkcHeapReserveUncommittedPeer(size_t size, bool writable, bool executable); WKC_PEER_API void* wkcHeapReserveAndCommitPeer(size_t size, bool writable, bool executable); WKC_PEER_API void wkcHeapReleaseDecommittedPeer(void* ptr, size_t size); -WKC_PEER_API void wkcHeapCommitPeer(void* ptr, size_t size, bool writable, bool executable); +WKC_PEER_API bool wkcHeapCommitPeer(void* ptr, size_t size, bool writable, bool executable); WKC_PEER_API void wkcHeapDecommitPeer(void* ptr, size_t size); WKC_PEER_API size_t wkcHeapGetPageSizePeer(void); diff --git a/WKC/include/wkc/wkcmediapeer.h b/WKC/include/wkc/wkcmediapeer.h index 7f941f58b..759a340f4 100644 --- a/WKC/include/wkc/wkcmediapeer.h +++ b/WKC/include/wkc/wkcmediapeer.h @@ -1,7 +1,7 @@ /* * wkcmediapeer.h * - * Copyright(c) 2011-2017 ACCESS CO., LTD. All rights reserved. + * Copyright(c) 2011-2018 ACCESS CO., LTD. All rights reserved. */ #ifndef _WKC_MEDIA_PEER_H_ @@ -853,9 +853,19 @@ WKC_PEER_API float wkcMediaPlayerStartTimePeer(void* in_self); @return Current position of content (elapsed seconds from beginning) @details The time of the current content playback position from the beginning must be returned as a return value. +@attention +This function is obsolete. wkcMediaPlayerCurrentTimeDoublePeer() would be used. */ WKC_PEER_API float wkcMediaPlayerCurrentTimePeer(void* in_self); /** +@brief Gets current content position +@param in_self Media player instance +@return Current position of content (elapsed seconds from beginning) +@details +The time of the current content playback position from the beginning must be returned as a return value. +*/ +WKC_PEER_API double wkcMediaPlayerCurrentTimeDoublePeer(void* in_self); +/** @brief Gets the maximum seekable position of content @param in_self Media player instance @return Maximum seekable position @@ -1407,31 +1417,45 @@ Do inverse FFT conversion. */ WKC_PEER_API void wkcAudioFFTDoInverseFFTPeer(void* in_self, float* out_data, const float* in_real, const float* in_imag); +/** @brief Structure that stores information about media segment */ +struct WKCMediaTrack_ { + /** @brief track ID*/ + int fID; + /** @brief codec */ + const char* fCodec; + /** @brief kind@n + WKC_MEDIA_SB_TRACKKIND_AUDIO kind of media is audio@n + WKC_MEDIA_SB_TRACKKIND_VIDEO kind of media is video */ + int fKind; +}; +/** @brief Type definition of WKCMediaTrack */ +typedef struct WKCMediaTrack_ WKCMediaTrack; + /** -@typedef void (*WKCSBDidReceiveInitializationSegmentProc)(void* in_opaque, const char* in_codec, int in_kind, double in_duration) +@typedef void (*WKCSBDidReceiveInitializationSegmentProc)(void* in_opaque, const WKCMediaTrack* in_tracks, int in_tracks_len, double in_duration) @brief Notify new initialization segment was append (Media Source Extensions Draft relevant) @param in_opaque Callback argument passed to wkcMediaPlayerAddSBPeer() -@param in_codec codec type of initialization segment -@param in_kind kind of media@n -WKC_MEDIA_SB_TRACKKIND_AUDIO kind of media is audio@n -WKC_MEDIA_SB_TRACKKIND_VIDEO kind of media is video +@param in_tracks pointer to array of WKCMediaTrack +@param in_tracks_len length of array of WKCMediaTrack @param in_duration duration information contained in initialization segment @details Notify new initialization segment was append in wkcMediaPlayerAppendToSBPeer(). */ -typedef void (*WKCSBDidReceiveInitializationSegmentProc)(void* in_opaque, const char* in_codec, int in_kind, double in_duration); +typedef void (*WKCSBDidReceiveInitializationSegmentProc)(void* in_opaque, const WKCMediaTrack* in_tracks, int in_tracks_len, double in_duration); /** @brief Structure that stores information about media segment */ struct WKCMediaSample_ { + /** @brief track ID*/ + int fID; /** @brief presentation timestamp of media segment@n - Refer to http://www.w3.org/TR/media-source/#presentation-timestamp*/ - double fPresentationTime; + Refer to http://www.w3.org/TR/media-source/#presentation-timestamp */ + long long fPresentationTime; /** @brief decode timestamp of media segment@n Refer to http://www.w3.org/TR/media-source/#decode-timestamp */ - double fDecodeTime; + long long fDecodeTime; /** @brief coded frame duration@n Refer to http://www.w3.org/TR/media-source/#coded-frame-duration */ - double fDuration; + long long fDuration; }; /** @brief Type definition of WKCMediaSample */ typedef struct WKCMediaSample_ WKCMediaSample; diff --git a/WKC/include/wkc/wkcmpeer.h b/WKC/include/wkc/wkcmpeer.h index 424dd123d..856317798 100644 --- a/WKC/include/wkc/wkcmpeer.h +++ b/WKC/include/wkc/wkcmpeer.h @@ -1,7 +1,7 @@ /* * wkcmpeer.h * - * Copyright(c) 2011-2016 ACCESS CO., LTD. All rights reserved. + * Copyright(c) 2011-2018 ACCESS CO., LTD. All rights reserved. */ #ifndef _WKC_MEMORY_PEER_H_ @@ -74,7 +74,11 @@ WKC_PEER_API void wkcMemoryRegisterGlobalObjPeer(volatile void* in_ptr, int in_s /* for peer_fastmalloc */ +WKC_PEER_API void wkcMemoryInitializeVirtualMemoryPeer(void* in_memory, size_t in_physical_memory_size, size_t in_virtual_memory_size); +WKC_PEER_API bool wkcMemoryCommitPeer(void* ptr, size_t size, bool writable, bool executable); +WKC_PEER_API void wkcMemoryDecommitPeer(void* ptr, size_t size); WKC_PEER_API size_t wkcMemoryGetPageSizePeer(void); +WKC_PEER_API size_t wkcMemoryGetCurrentPhysicalMemoryUsagePeer(void); WKC_PEER_API void wkcMemorySetExecutablePeer(void* in_ptr, size_t in_size, bool in_executable); WKC_PEER_API void wkcMemoryCacheFlushPeer(void* in_ptr, size_t in_size); diff --git a/WKC/include/wkccairorename.h b/WKC/include/wkccairorename.h index 48888d24f..12def4e6b 100644 --- a/WKC/include/wkccairorename.h +++ b/WKC/include/wkccairorename.h @@ -177,6 +177,7 @@ #define _cairo_font_face_set_error wkc__cairo_font_face_set_error #define _cairo_font_face_twin_create_fallback wkc__cairo_font_face_twin_create_fallback #define _cairo_font_face_twin_create_for_toy wkc__cairo_font_face_twin_create_for_toy +#define _cairo_font_options_fini wkc__cairo_font_options_fini #define _cairo_font_options_get_lcd_filter wkc__cairo_font_options_get_lcd_filter #define _cairo_font_options_get_round_glyph_positions wkc__cairo_font_options_get_round_glyph_positions #define _cairo_font_options_init_copy wkc__cairo_font_options_init_copy @@ -289,6 +290,7 @@ #define _cairo_hull_compute wkc__cairo_hull_compute #define _cairo_image_analyze_color wkc__cairo_image_analyze_color #define _cairo_image_analyze_transparency wkc__cairo_image_analyze_transparency +#define _cairo_image_compositor_reset_static_data wkc__cairo_image_compositor_reset_static_data #define _cairo_image_info_get_jbig2_info wkc__cairo_image_info_get_jbig2_info #define _cairo_image_info_get_jpeg_info wkc__cairo_image_info_get_jpeg_info #define _cairo_image_info_get_jpx_info wkc__cairo_image_info_get_jpx_info @@ -587,6 +589,7 @@ #define _cairo_spline_init wkc__cairo_spline_init #define _cairo_spline_intersects wkc__cairo_spline_intersects #define _cairo_stock_color wkc__cairo_stock_color +#define _cairo_string_hash wkc__cairo_string_hash #define _cairo_stroke_style_dash_approximate wkc__cairo_stroke_style_dash_approximate #define _cairo_stroke_style_dash_can_approximate wkc__cairo_stroke_style_dash_can_approximate #define _cairo_stroke_style_dash_period wkc__cairo_stroke_style_dash_period @@ -803,12 +806,14 @@ #define cairo_font_options_get_hint_metrics wkc_cairo_font_options_get_hint_metrics #define cairo_font_options_get_hint_style wkc_cairo_font_options_get_hint_style #define cairo_font_options_get_subpixel_order wkc_cairo_font_options_get_subpixel_order +#define cairo_font_options_get_variations wkc_cairo_font_options_get_variations #define cairo_font_options_hash wkc_cairo_font_options_hash #define cairo_font_options_merge wkc_cairo_font_options_merge #define cairo_font_options_set_antialias wkc_cairo_font_options_set_antialias #define cairo_font_options_set_hint_metrics wkc_cairo_font_options_set_hint_metrics #define cairo_font_options_set_hint_style wkc_cairo_font_options_set_hint_style #define cairo_font_options_set_subpixel_order wkc_cairo_font_options_set_subpixel_order +#define cairo_font_options_set_variations wkc_cairo_font_options_set_variations #define cairo_font_options_status wkc_cairo_font_options_status #define cairo_format_stride_for_width wkc_cairo_format_stride_for_width #define cairo_get_antialias wkc_cairo_get_antialias diff --git a/WKC/include/wkcplatform.h b/WKC/include/wkcplatform.h index adfd89e53..c667c9bf3 100644 --- a/WKC/include/wkcplatform.h +++ b/WKC/include/wkcplatform.h @@ -4,7 +4,7 @@ * Copyright (C) 2006-2009, 2013-2015 Apple Inc. All rights reserved. * Copyright (C) 2007-2009 Torch Mobile, Inc. * Copyright (C) 2010, 2011 Research In Motion Limited. All rights reserved. - * Copyright (c) 2010-2017 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2010-2018 ACCESS CO., LTD. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -221,6 +221,9 @@ #define USE_WKC_CUSTOM_BACKFORWARD_LIST 1 +// We enable this even in release build for ease of debugging. +#define ENABLE_TREE_DEBUGGING 1 + /* ==== PLATFORM handles OS, operating environment, graphics API, and CPU. This macro will be phased out in favor of platform adaptation macros, policy decision macros, and top-level port definitions. ==== */ diff --git a/WebKitLibraries/cairo/ChangeLog b/WebKitLibraries/cairo/ChangeLog index 3ef950c6c..945498ac4 100644 --- a/WebKitLibraries/cairo/ChangeLog +++ b/WebKitLibraries/cairo/ChangeLog @@ -1,10 +1,1015 @@ # Generated by configure. Do not edit. -commit 95c464d5feaae58b6cc0990434ce2498cc315dc6 +commit 7149686456ec3c481fa1d3dbe76a0dab1e42b519 +Author: Bryce Harrington +AuthorDate: Wed Apr 4 11:48:11 2018 -0700 +Commit: Bryce Harrington +CommitDate: Wed Apr 11 18:35:40 2018 -0700 + + 1.15.12 release + + Signed-off-by: Bryce Harrington + + NEWS | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ + cairo-version.h | 2 +- + 2 files changed, 50 insertions(+), 1 deletion(-) + +commit caf6f71d692de5b2afd97bf4870de8c56b454408 +Author: Bryce Harrington +AuthorDate: Tue Apr 3 18:01:09 2018 -0700 +Commit: Bryce Harrington +CommitDate: Wed Apr 11 13:27:53 2018 -0700 + + configure: Conditionalize color font feature for older freetype2 + + FT_HAS_COLOR() macro is unavailable in older freetype2 without the color + font feature. + + Compile and link a source including FT_HAS_COLOR(); if it fails (which + can happen on older FreeType2) then define FT_HAS_COLOR(x) as (0). + + Patch from suzuki toshiya + + Reviewed-by: Bryce Harrington + + configure.ac | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit 38806bc3c09fbfbca0cccb4d0cc557257682db62 +Author: Bryce Harrington +AuthorDate: Mon Apr 2 20:04:16 2018 -0700 +Commit: Bryce Harrington +CommitDate: Mon Apr 2 20:20:00 2018 -0700 + + Disable skia from configure + + Implement suggestion by Adrian Johnson to comment out skia in + configure.ac to avoid presenting it as an option to users. This was + discussed on the Cairo mailing list in September 2017. + + Skia is not API stable and is not available in packaged+versioned forms, + resulting in it being a continually moving target. I.e. it's pretty + much always unusably out of date. The last update to the skia backend + was in 2014, and had not been updated very regularly prior to that. + + We'll simply disable it for now. If no one complains by the next Cairo + snapshot release, we'll assume no one is needing it and will drop the + code entirely. + + Meanwhile, if anyone does need it, it can be uncommented and used. + + (The changes to the win32 build config appear to be automatically + generated as a result of disabling the feature in configure. I'm + committing them to avoid confusion.) + + boilerplate/Makefile.win32.features | 12 ----------- + build/Makefile.win32.features | 1 - + build/Makefile.win32.features-h | 3 --- + build/configure.ac.features | 2 +- + configure.ac | 42 ++++++++++++++++++++----------------- + src/Makefile.win32.features | 16 -------------- + 6 files changed, 24 insertions(+), 52 deletions(-) + +commit dcafd9e684ba0c58d15558a11cdb6c6933b95198 +Author: Bryce Harrington +AuthorDate: Mon Apr 2 17:51:08 2018 -0700 +Commit: Bryce Harrington +CommitDate: Mon Apr 2 17:51:08 2018 -0700 + + cairo-version: Fix version references in docs + + Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=82741 + + src/cairo-version.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 12cb59be7da83cf019933a163cef8d8b2601b7f4 +Author: Unknown +AuthorDate: Thu Nov 9 09:43:02 2017 -0500 +Commit: Bryce Harrington +CommitDate: Mon Apr 2 17:46:58 2018 -0700 + + Cairo trivial typos + + Found using `codespell -q 3 -I cairo-whitelist.txt` + whereby whitelist contained: + ``` + amin + iff + lod + writen + ``` + + Reviewed-by: Bryce Harrington + + build/aclocal.float.m4 | 2 +- + perf/cairo-perf-diff-files.c | 2 +- + perf/micro/long-lines.c | 2 +- + src/cairo-cogl-surface.c | 2 +- + src/cairo-pdf-operators.c | 2 +- + src/cairo-pdf-surface-private.h | 2 +- + src/cairo-pdf-surface.c | 2 +- + src/cairo-ps-surface.c | 2 +- + src/cairo-xlib-surface.c | 2 +- + src/cairo.c | 6 +++--- + src/cairo.h | 2 +- + src/cairoint.h | 2 +- + src/skia/cairo-skia-context.cpp | 2 +- + test/line-width-zero.c | 2 +- + test/mime-data.c | 2 +- + test/skew-extreme.c | 2 +- + util/backtrace-symbols.c | 2 +- + 17 files changed, 19 insertions(+), 19 deletions(-) + +commit 33a348d69809637ba7c48cc31a9f236a5b246ae0 +Author: suzuki toshiya +AuthorDate: Sat Mar 31 21:28:46 2018 +0900 +Commit: Bryce Harrington +CommitDate: Mon Apr 2 11:55:19 2018 -0700 + + csi-trace does not show help + + csi-trace does not show help string correctly, due to a bug in its + command line argument parsing. strcmp returns 0 when there is an exact + match, which means it requires an inverted test. + + Reviewed-by: Bryce Harrington + + util/cairo-script/csi-trace.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 50a6ad5389eab30c86b53fda3e0a247ec34118dc +Author: Uli Schlachter +AuthorDate: Sat Mar 31 13:52:53 2018 +0200 +Commit: Bryce Harrington +CommitDate: Mon Apr 2 11:16:34 2018 -0700 + + pthread-same-source: Refresh reference images + + I already did the same thing in commit 3e22a8580a804. That commit added + a GENERATE_REFERENCE mode that does not use threads and used that for + generating the reference image. + + However, the above commit falls into the range between commits + fb57ea13e04d and 3d94269bd4. The later commit reverts the earlier one, + which changed the way that image downscaling works / is used. + + This means that the reference image that were generated back then were + broken. Thus, regenerating the images is the right thing to do. + + Signed-off-by: Uli Schlachter + Acked-by: Bryce Harrington + + test/reference/pthread-same-source.ref.png | Bin 1076 -> 1002 bytes + 1 file changed, 0 insertions(+), 0 deletions(-) + +commit fba7a7ca27b6dde8d90fca25d8618fa2aca3c1aa +Author: Uli Schlachter +AuthorDate: Fri Mar 30 09:25:28 2018 +0200 +Commit: Bryce Harrington +CommitDate: Mon Apr 2 11:08:46 2018 -0700 + + Skip font-variations test for missing fonts + + Signed-off-by: Uli Schlachter + Reviewed-by: Bryce Harrington + + test/font-variations.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 1ed124ace201946177eab962d3b07bb2fedf9026 +Author: Uli Schlachter +AuthorDate: Sat Jan 13 11:34:19 2018 +0100 +Commit: Uli Schlachter +CommitDate: Thu Mar 15 21:43:03 2018 +0100 + + Fix a 'memory leak' in the image compositor + + There is a global pixman_glyph_cache_t instance that is initialized on + first use and shows up in valgrind output as a relatively large leak (I + think it was about 200 KiB). The reason for this is that this cache is + not freed by cairo_debug_reset_static_data(). + + This commit wires up freeing the cache to + cairo_debug_reset_static_data(). + + This cache was introduced in commit 615205cf0729 from 2012. + + Signed-off-by: Uli Schlachter + + src/cairo-debug.c | 2 ++ + src/cairo-image-compositor.c | 17 +++++++++++++++++ + src/cairoint.h | 3 +++ + 3 files changed, 22 insertions(+) + +commit 5454b85d4bf2f7bea454c940d90255a15517fa3b +Author: Massimo +AuthorDate: Wed Mar 7 14:11:58 2018 -0600 +Commit: Bryce Harrington +CommitDate: Thu Mar 8 13:30:17 2018 -0800 + + bfo#91271 - Fix access of uninitialized memory + + Valgrind reports that xlib-render-compositor's composite_traps() + accesses uninitialized memory when traps->num_traps == 0. + + This happens in the line that says + + if (xtraps[0].left.p1.y < xtraps[0].left.p2.y) { + + after the 'for' loop. We can actually return early if there are no + trapezoids to render. + + Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91271 + Reviewed-by: Bryce Harrington + + src/cairo-xlib-render-compositor.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit 45e3b8f27179cf1130bfa61a09ef366fd313a0e1 +Author: Federico Mena Quintero +AuthorDate: Tue Feb 13 15:04:42 2018 -0600 +Commit: Bryce Harrington +CommitDate: Thu Mar 8 13:30:11 2018 -0800 + + bfo#105084 - Initialize memory properly in _cairo_ft_font_face_create_for_pattern() + + The font_face->ft_options field was not being initialized, leading to + an invalid free(). + + Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=105084 + Reviewed-by: Bryce Harrington + + src/cairo-ft-font.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit 7784757b9e271f749b91de27b3472a0151ae2380 +Author: Federico Mena Quintero +AuthorDate: Tue Feb 27 17:54:57 2018 -0600 +Commit: Federico Mena Quintero +CommitDate: Wed Mar 7 14:20:24 2018 -0600 + + Add .gitlab-ci.yml to run the tests automatically + + .gitlab-ci.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 46 insertions(+) + +commit 14404ada80f699418263256d7d3d8dddf68be279 +Author: Bryce Harrington +AuthorDate: Wed Feb 28 15:19:06 2018 -0800 +Commit: Bryce Harrington +CommitDate: Wed Feb 28 15:19:06 2018 -0800 + + compiler-private: Define what PLT stands for + + src/cairo-compiler-private.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 62b724ac848aecbbb35a70c2f7d4685c6c2605f9 +Author: Bryce Harrington +AuthorDate: Tue Feb 6 15:09:08 2018 -0800 +Commit: Bryce Harrington +CommitDate: Tue Feb 6 15:13:00 2018 -0800 + + win32: Fix a few typos in comments + + src/win32/cairo-win32-private.h | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +commit dbe3d9ea517da51e6be5a19d87f2d02176f0ba00 +Author: Bryce Harrington +AuthorDate: Tue Feb 6 15:08:17 2018 -0800 +Commit: Bryce Harrington +CommitDate: Tue Feb 6 15:13:00 2018 -0800 + + win32: Whitespace cleanup + + src/win32/cairo-win32-display-surface.c | 38 ++++++++++++++++----------------- + src/win32/cairo-win32-private.h | 32 +++++++++++++-------------- + 2 files changed, 35 insertions(+), 35 deletions(-) + +commit 4d07b57c168b88019a5510eaa7e9467149c53f12 +Author: Eric Hoffman +AuthorDate: Wed Apr 26 04:22:25 2017 +0000 +Commit: Bryce Harrington +CommitDate: Tue Feb 6 15:12:33 2018 -0800 + + win32: Fix multi-monitor virtual desktop with negative monitor coords + + Under Win32, when you have a multiple-monitor setup, Windows creates a + 'virtual desktop', which is a rectangle surface that extends across all + monitors. + + The primary monitor always starts with the top-left corner at coordinate + (0,0). If you have any other monitors which extend to the left or + above the primary monitor, the virtual desktop's top-left corner will + actually have coordinates which are negative. + + This creates an issue in Cairo with the desktop DC, i.e. when you use a + DC from the function GetDC(NULL). The same thing can occur with other + third party libraries like GTK, when you access the Cairo surface from + the root window. + + Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=100793 + Reviewed-by: Bryce Harrington + + src/win32/cairo-win32-display-surface.c | 42 +++++++++++++++++++++++++++++---- + src/win32/cairo-win32-private.h | 18 ++++++++++++++ + 2 files changed, 56 insertions(+), 4 deletions(-) + +commit a8571a3030a0ac1f29809ab72e5e54a83addcbd2 +Author: Bryce Harrington +AuthorDate: Tue Feb 6 12:06:48 2018 -0800 +Commit: Bryce Harrington +CommitDate: Tue Feb 6 12:06:48 2018 -0800 + + xml: Typo in comment + + src/cairo-xml-surface.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 1cbebafe89610329a252b4cc076cd2dccf6e56aa +Author: Bryce Harrington +AuthorDate: Tue Jan 23 19:47:57 2018 -0800 +Commit: Bryce Harrington +CommitDate: Tue Jan 23 19:58:35 2018 -0800 + + font: Check return value from _cairo_ft_unscaled_font_lock_face + + cairo-ft-font.c: In function ‘_cairo_ft_has_color_glyphs’: + cairo-ft-font.c:3011:9: warning: ignoring return value of ‘_cairo_ft_unscaled_font_lock_face’, declared with attribute warn_unused_result [-Wunused-result] + _cairo_ft_unscaled_font_lock_face (unscaled); + ^ + + src/cairo-ft-font.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +commit bc335a741f2d69b57e5a0d39c471ef14a4a70df4 +Author: Bryce Harrington +AuthorDate: Tue Jan 23 19:14:25 2018 -0800 +Commit: Bryce Harrington +CommitDate: Tue Jan 23 19:20:08 2018 -0800 + + Fix two type casting warnings in get_C_locale() + + cairo-misc.c:806:43: warning: passing argument 1 of ‘_cairo_atomic_ptr_get’ from incompatible pointer type + C = (locale_t) _cairo_atomic_ptr_get (&C_locale); + ^ + + cairo-misc.c:811:45: warning: passing argument 1 of ‘_cairo_atomic_ptr_cmpxchg_impl’ from incompatible pointer type + if (!_cairo_atomic_ptr_cmpxchg (&C_locale, NULL, C)) { + ^ + + Routines are expecting a void** so cast. + + src/cairo-misc.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 6c675653b1cc325b78eb54dc3669ad207c653e2d +Author: Bryce Harrington +AuthorDate: Mon Jan 22 14:58:46 2018 -0800 +Commit: Bryce Harrington +CommitDate: Mon Jan 22 14:58:46 2018 -0800 + + RELEASING: Refine devel version and tagging + + RELEASING | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +commit 14f5b98d22c79dd85ce6b8b02327c58f46d6d62c +Author: Behdad Esfahbod +AuthorDate: Fri Jan 19 11:10:13 2018 -0800 +Commit: Behdad Esfahbod +CommitDate: Fri Jan 19 11:10:13 2018 -0800 + + Fixup on previous commit + + test/font-variations.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 4a09fec668395532a1b8d3a2344be5eca6c61d14 +Author: Bryce Harrington +AuthorDate: Thu Jan 18 21:02:12 2018 -0800 +Commit: Bryce Harrington +CommitDate: Thu Jan 18 21:02:12 2018 -0800 + + test: Fix compile with older FreeType without FT_Get_Var_Design_Coordinates + + Extend earlier fix to the tests as well. + + test/font-variations.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 5795ac9d90c4927e9826cf49687a9f84628d9974 +Author: Behdad Esfahbod +AuthorDate: Mon Jan 15 19:28:56 2018 -0500 +Commit: Behdad Esfahbod +CommitDate: Mon Jan 15 19:28:56 2018 -0500 + + Fix compile with older FreeType without FT_Get_Var_Design_Coordinates + + configure.ac | 2 +- + src/cairo-ft-font.c | 4 ++++ + 2 files changed, 5 insertions(+), 1 deletion(-) + +commit b7f313a8d2a3049e77b3497dd6040fcfab3b3c9b +Author: Uli Schlachter +AuthorDate: Sat Dec 23 14:09:27 2017 +0100 +Commit: Uli Schlachter +CommitDate: Sat Jan 13 11:30:50 2018 +0100 + + fix warning: variable X might be clobbered by 'longjmp' + + According to "man setjmp", one possible way to avoid variable clobbering + is to declare them as volatile. Thus, this commit turns the variables + that are changed between setjmp() and longjmp() and whose values are + still needed after setjmp() returned the second time into volatile + variables. + + The warning in cairo-bentley-ottmann-rectangular.c is worked around by + not initializing the variable before setjmp(). To be honest, I don't + understand why the compiler warns here at all since the value of update + is clearly not used after setjmp()'s second return. + + This commit re-fixes the warnings that were reintroduced in commit + 82f40285 which reverted b092b63. + + Signed-off-by: Uli Schlachter + Acked-by: Bryce Harrington + + src/cairo-bentley-ottmann-rectangular.c | 4 +++- + src/cairo-png.c | 6 +++--- + 2 files changed, 6 insertions(+), 4 deletions(-) + +commit 62f2037bc06a8eda1aa5ff66b45ce9e8bafe0a9c +Author: Uli Schlachter +AuthorDate: Sat Dec 23 13:22:59 2017 +0100 +Commit: Uli Schlachter +CommitDate: Sat Jan 13 11:30:26 2018 +0100 + + Fix warning: '*' in boolean context + + The full message is: + + warning: ‘*’ in boolean context, suggest ‘&&’ instead + _cairo_malloc((unsigned) (a) * (unsigned) (size))) + ^ + note: in definition of macro ‘_cairo_malloc’ + ((size) ? malloc((unsigned) (size)) : NULL) + ^~~~ + + Signed-off-by: Uli Schlachter + Reviewed-by: Bryce Harrington + + src/cairo-malloc-private.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit c3659d7ef662b55949307ece7b1f613a7dc32620 +Author: Behdad Esfahbod +AuthorDate: Mon Jan 8 10:07:25 2018 +0000 +Commit: Behdad Esfahbod +CommitDate: Mon Jan 8 10:07:25 2018 +0000 + + Use FT_Done_MM_Var() if available + + configure.ac | 2 +- + src/cairo-ft-font.c | 4 ++++ + 2 files changed, 5 insertions(+), 1 deletion(-) + +commit 37f9a5525da457226317d426e06c55d77da206c1 +Author: Matthias Clasen +AuthorDate: Fri Jan 5 09:10:32 2018 -0500 +Commit: Matthias Clasen +CommitDate: Fri Jan 5 09:10:32 2018 -0500 + + Don't leak memory in font options + + The cairo_font_options_t struct may now contain allocated + memory, so call fini whenever we are about to let go of an + embedded cairo_font_options_t struct. + + src/cairo-ft-font.c | 21 ++++++++++++++++++++- + 1 file changed, 20 insertions(+), 1 deletion(-) + +commit 1f0b6707eab54ddbcc9ac0b68e0e483d33704644 +Author: Matthias Clasen +AuthorDate: Fri Jan 5 09:09:01 2018 -0500 +Commit: Matthias Clasen +CommitDate: Fri Jan 5 09:09:01 2018 -0500 + + Add a _cairo_font_options_fini function + + The variations member of cairo_font_options_t is allocated, + so we need to have a method to free it for cases where + the struct is embedded in larger structs, such as cairo_ft_options_t. + + src/cairo-font-options.c | 8 +++++++- + src/cairoint.h | 3 +++ + 2 files changed, 10 insertions(+), 1 deletion(-) + +commit 17871c52eff5ae89af08b9deb4be36b6b6f4c0e3 +Author: Matthias Clasen +AuthorDate: Thu Jan 4 23:25:09 2018 -0500 +Commit: Matthias Clasen +CommitDate: Thu Jan 4 23:25:09 2018 -0500 + + Don't leak patterns when compositing color glyphs + + We were forgetting to free the pattern here. + + src/cairo-surface.c | 1 + + 1 file changed, 1 insertion(+) + +commit 616fb7a9f2612f6cc3472542a70ba3e8ccf16584 +Author: Matthias Clasen +AuthorDate: Thu Jan 4 20:56:59 2018 -0500 +Commit: Matthias Clasen +CommitDate: Thu Jan 4 20:56:59 2018 -0500 + + Fix a memory leak + + cairo_ft_apply_variations was leaking the FT_MM_Var struct. + + src/cairo-ft-font.c | 1 + + 1 file changed, 1 insertion(+) + +commit a7a0085713902c7d074be493d82f49bac6c97114 +Merge: 6b05938 a18c0de +Author: Behdad Esfahbod +AuthorDate: Wed Jan 3 12:35:12 2018 +0000 +Commit: Behdad Esfahbod +CommitDate: Wed Jan 3 12:35:12 2018 +0000 + + Merge branch 'font-variations' + +commit a18c0decdacc3846588f424edb6d45ddc9be9560 +Author: Behdad Esfahbod +AuthorDate: Tue Jan 2 19:25:18 2018 -0500 +Commit: Behdad Esfahbod +CommitDate: Tue Jan 2 19:25:18 2018 -0500 + + [ft] Remember variations set on FT_Face and apply them + + For this to work correctly with hb-view, needs a patch that went + into FreeType today. + + src/cairo-ft-font.c | 41 ++++++++++++++++++++++++++++++----------- + 1 file changed, 30 insertions(+), 11 deletions(-) + +commit 6b0593827b072abd701ea47448981bcc9bdde9f3 +Author: Uli Schlachter +AuthorDate: Sun Dec 24 13:23:13 2017 +0100 +Commit: Uli Schlachter +CommitDate: Sun Dec 24 13:23:13 2017 +0100 + + Add test for error handling with broken PNG streams + + Would-have-caught: https://bugs.freedesktop.org/show_bug.cgi?id=104325 + Signed-off-by: Uli Schlachter + + test/Makefile.sources | 1 + + test/create-from-broken-png-stream.c | 87 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 88 insertions(+) + +commit 82f4028532c11152a0110f1b277e3358dfca6545 +Author: Uli Schlachter +AuthorDate: Sat Dec 23 13:04:59 2017 +0100 +Commit: Uli Schlachter +CommitDate: Sat Dec 23 13:04:59 2017 +0100 + + Revert "fix warning: variable X might be clobbered by 'longjmp'" + + This reverts commit b092b63119cbfe3cb4bc786eee81630998996acf which + introduced a wrapper function around setjmp(). To quote from man setjmp: + + If the function which called setjmp() returns before longjmp() is + called, the behavior is undefined. Some kind of subtle or unsubtle + chaos is sure to result. + + Since after the above commit setjmp() is called from the wrapper + function, the result might or might not work, depending on compiler + settings. If the setjmp() wrapper is not inlined, then the state of the + stack after longjmp() will likely be garbage. + + src/cairo-bentley-ottmann-rectangular.c | 8 +------- + src/cairo-png.c | 17 ++++++----------- + 2 files changed, 7 insertions(+), 18 deletions(-) + +commit 3e07efd21e91ab90969aa2e4fc8b66adebac01ed +Author: Bryce Harrington +AuthorDate: Wed Dec 20 17:09:05 2017 -0800 +Commit: Bryce Harrington +CommitDate: Wed Dec 20 17:09:05 2017 -0800 + + makefile: Fix sorting of source files + + src/Makefile.sources | 58 ++++++++++++++++++++++++++-------------------------- + 1 file changed, 29 insertions(+), 29 deletions(-) + +commit e8ddc505b3d4fd8492910e05e99ce2fb3c32bd2b +Author: Behdad Esfahbod +AuthorDate: Tue Dec 19 15:59:50 2017 -0500 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 18:04:04 2017 -0500 + + [ft] Fix warnings + + src/cairo-ft-font.c | 19 ++++++++----------- + 1 file changed, 8 insertions(+), 11 deletions(-) + +commit c32a5c741f8fbb21912edc7fc7763a361415b914 +Author: Matthias Clasen +AuthorDate: Tue Dec 19 17:36:36 2017 -0500 +Commit: Matthias Clasen +CommitDate: Tue Dec 19 17:36:36 2017 -0500 + + Shortcut FT_Set_Var_Design_Coordinates + + We currently (have to) apply font variations for every glyph. + Calling FT_Set_Var_Design_Coordinates has expensive side-effects, + like resetting the autohinter, so we should avoid doing it + fht he coordinates don't actually change. + + src/cairo-ft-font.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +commit d8ddadc5c3d5a74c433995d8bd82ba395bcd6973 +Author: Behdad Esfahbod +AuthorDate: Tue Dec 19 15:29:13 2017 -0500 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:29:13 2017 -0500 + + [ft] When merging font options, order variations correctly + + Later wins, and we want "options" to win over "other". + + src/cairo-ft-font.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 82107467f0c52fee1368246aa9d931a82bcfadc4 +Author: Behdad Esfahbod +AuthorDate: Tue Dec 19 00:38:25 2017 -0500 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:18:57 2017 -0500 + + [ft] Use variations from ft_options, not scaled-font + + Otherwise the variations from FcPattern won't be applied. + + src/cairo-ft-font.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 976b34c31cb6e70a902d57c705d92ea5f35577e3 +Author: Matthias Clasen +AuthorDate: Mon Dec 18 18:51:03 2017 -0500 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:18:57 2017 -0500 + + fixup + + We were passing a face index to cairo_ft_apply_variations, + but that function was expecting an instance id, which is + the face index shifted by 16. + + src/cairo-ft-font.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 5c7f07d4ea831dff42244782bd583ab5fe7817b7 +Author: Matthias Clasen +AuthorDate: Mon Dec 18 13:50:23 2017 -0500 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:18:57 2017 -0500 + + fixup: remove a hack + + This bug that this hack is working around has been + fixed in freetype now. + + src/cairo-ft-font.c | 2 -- + 1 file changed, 2 deletions(-) + +commit 1b5677ad6d86a6e67ba99bf3df963a3789816dd5 +Author: Matthias Clasen +AuthorDate: Mon Dec 18 13:01:23 2017 -0500 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:18:57 2017 -0500 + + Apply font variations when loading glyphs + + So far, we only call cairo_ft_apply_variations() in + cairo_ft_scaled_font_lock_face(), but this function is not + used internally. We need to apply it also when loading + glyphs. + + This makes pango-view show font variations correctly. + + src/cairo-ft-font.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit f2b6fac43f2fcd362eced1c87c5760c763aa963f +Author: Matthias Clasen +AuthorDate: Mon Dec 18 13:00:18 2017 -0500 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:18:57 2017 -0500 + + Trivial: code movement + + Move cairo_ft_apply_font_variations() earlier in the code + since we will be using it in another place soon. + + src/cairo-ft-font.c | 148 ++++++++++++++++++++++++++-------------------------- + 1 file changed, 74 insertions(+), 74 deletions(-) + +commit 42f07ef9037ea871dc0e58200437aab9c702ad6d +Author: Matthias Clasen +AuthorDate: Thu Sep 28 16:24:13 2017 -0400 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:18:57 2017 -0500 + + Always save the origin face index + + Save the original face_index also for the from_face case, + so we can always rely on it when applying font variations. + This prevents us from running into the same trap we've seen + before where ft_face->face_index changes underneath us as + font variations are applied. + + src/cairo-ft-font.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit 1735fc41d3ac7015a584d73aa2c983f44f008788 +Author: Matthias Clasen +AuthorDate: Thu Sep 28 15:40:22 2017 -0400 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:18:57 2017 -0500 + + Apply font variation options consistently + + We must not look at the instance_id field of the cached ft_face, + since freetype changes it underneath us (if we set the axis values + to match a named instance, the instance_id gets changed to reflect + that). Thankfully, we have the original instance_id stashed away + in the cairo_unscaled_font, so we can just use that to decide if + we are dealing with a named instance or not. + + This makes the font variations tests pass. + + src/cairo-ft-font.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 46034b0547ea9b69392bde5b334f1891bd51c98a +Author: Matthias Clasen +AuthorDate: Wed Sep 20 22:29:30 2017 -0400 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:18:57 2017 -0500 + + Make the font-variations test pass + + Not sure what I was thinking - the test is checking the width + axis, but the font we're using has only weight and contrast + as axes... + + test/font-variations.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit db946d1788b8be1aef39102efe93826886b6addf +Author: Behdad Esfahbod +AuthorDate: Wed Sep 20 18:51:36 2017 -0700 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:18:57 2017 -0500 + + [varfonts] Correctly (re)set variations of named instances + + src/cairo-ft-font.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +commit 7125c4bf5e95164f4202a0f16fff07198e578668 +Author: Behdad Esfahbod +AuthorDate: Wed Sep 20 18:50:57 2017 -0700 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:18:57 2017 -0500 + + [varfonts] Use blend, not design, coordinates to check for non-base variation + + If all blend coordinates are zero, we are at base font. This is more robust. + + src/cairo-ft-font.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 374ee5a2fd1f749de8d52a2536dc8fb23ef17121 +Author: Behdad Esfahbod +AuthorDate: Wed Sep 20 15:14:54 2017 -0700 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:17:01 2017 -0500 + + [variations] Merge variations in cairo-ft font option merging + + This function should be rewritten to call cairo_font_options_merge(), but + currently it doesn't. + + Speculative. Untested. + + src/cairo-ft-font.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +commit 34047d11db847777d32b5eb49dfcb64bc08e33d0 +Author: Behdad Esfahbod +AuthorDate: Wed Sep 20 15:11:27 2017 -0700 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:17:01 2017 -0500 + + [variations] Fix test + + This does not exercise merging of variations from font-options and from + pattern. Before this commit the code was more towards doing that. + + test/font-variations.c | 17 ++++++----------- + 1 file changed, 6 insertions(+), 11 deletions(-) + +commit 6accf16093b3d3451eca10ee194c00a1107b8861 +Author: Behdad Esfahbod +AuthorDate: Wed Sep 20 14:53:10 2017 -0700 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:17:01 2017 -0500 + + [variations] Towards fixing test + + test/font-variations.c | 19 +++++++++++++------ + 1 file changed, 13 insertions(+), 6 deletions(-) + +commit 7cc07f184bf705891bfb6b7f3b4f4b425370b5cd +Author: Matthias Clasen +AuthorDate: Sat Sep 16 13:23:57 2017 -0400 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:17:01 2017 -0500 + + Work around a freetype bug + + The first call to FT_Get_MM_Var on a newly created FT_Face + fails. So just repeat the call. + + src/cairo-ft-font.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 38b6e23609085ecb736530e47ffd04564304415e +Author: Matthias Clasen +AuthorDate: Sat Sep 16 13:22:22 2017 -0400 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:17:01 2017 -0500 + + Add a test for font variations + + This test checks that passing font variation settings via + font options has the desired effect. It checks this by reading + the effective axis values out of the FT_Face after creating + a font with these options. + + test/Makefile.am | 1 + + test/Makefile.sources | 1 + + test/font-variations.c | 196 +++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 198 insertions(+) + +commit 721b7ea0a785afaa04b6da63f970c3c57666fdfe +Author: Matthias Clasen +AuthorDate: Sun Sep 17 10:54:58 2017 -0400 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:17:01 2017 -0500 + + Apply font variations when loading fonts + + Parse font variation settings and pass them on to + freetype when loading fonts. + + src/cairo-ft-font.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 68 insertions(+), 1 deletion(-) + +commit a8ae2eafc85fda76fde79defa40fe06000d907db +Author: Matthias Clasen +AuthorDate: Sun Sep 17 11:17:13 2017 -0400 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:17:01 2017 -0500 + + Use strtod_l when available + + Using strtod_l and newlocale is a nicer way to have provide + a C-locale-only strtod. Since these APIs are not available + everywhere, keep the old code as a fallback. + + configure.ac | 3 +++ + src/cairo-misc.c | 37 +++++++++++++++++++++++++++++++++++++ + 2 files changed, 40 insertions(+) + +commit ac5acc45383f7ada422dec3e7c8a71bdb041fc8a +Author: Matthias Clasen +AuthorDate: Sun Sep 17 10:54:04 2017 -0400 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:16:20 2017 -0500 + + Load font variations from fontconfig too + + When extracting font options from a fontconfig pattern, + also extract font variation information if present. + + src/cairo-ft-font.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit edf9497c3a28bc4e110ecf08069c8d48b995a0ea +Author: Matthias Clasen +AuthorDate: Sun Sep 17 10:40:13 2017 -0400 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:16:19 2017 -0500 + + Add font variations to font options + + Add a font option for OpenType font variations, specified + as a string in a format similar to the proposed css + font-variation-settings property. + + src/cairo-font-options.c | 87 +++++++++++++++++++++++++++++++++++++++++++++-- + src/cairo-types-private.h | 1 + + src/cairo.h | 7 ++++ + 3 files changed, 92 insertions(+), 3 deletions(-) + +commit 4ece386149ccd8fbad5f8dff5d792ad2b49d5915 +Author: Matthias Clasen +AuthorDate: Sun Sep 17 10:20:06 2017 -0400 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:16:19 2017 -0500 + + Make _intern_string_hash non-static + + We will use this function in cairo-font-options.c in the following + commits. + + src/cairo-misc.c | 6 +++--- + src/cairoint.h | 3 +++ + 2 files changed, 6 insertions(+), 3 deletions(-) + +commit d50dbbaf278c3dd9558a097124147e353a98c32a +Author: Matthias Clasen +AuthorDate: Sun Sep 17 10:16:48 2017 -0400 +Commit: Behdad Esfahbod +CommitDate: Tue Dec 19 15:16:19 2017 -0500 + + Make _intern_string_hash safe for "" + + The loop was unnecessarily written in a way that fails + to terminate if len is 0 (ie for the empty string). + Avoid that by checking for len > 0 explicitly. + + src/cairo-misc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 903b0de539844c144c63ea57c30e84a23360c290 +Author: Matthias Clasen +AuthorDate: Sun Dec 17 21:24:53 2017 -0500 +Commit: Behdad Esfahbod +CommitDate: Sun Dec 17 21:36:17 2017 -0500 + + Fix a logic error in color glyph compositing + + When a color glyph is completely clipped away, we + get the non-zero status 'nothing to do'. In that case, + we must not exit early, since there might still be work + to do for the other color glyphs. + + This bug was showing up as color glyphs stopping to render + in GTK+ entries that are scrolled to the right, and also + as color glyphs not rendering inside the selection sometimes. + + See https://bugzilla.gnome.org/show_bug.cgi?id=790255 and + https://bugzilla.gnome.org/show_bug.cgi?id=788071. + + src/cairo-surface.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 06964531e01bd0912a0edda81cea459ae460ffaa +Author: Bryce Harrington +AuthorDate: Thu Dec 14 09:58:57 2017 -0800 +Commit: Bryce Harrington +CommitDate: Thu Dec 14 09:58:57 2017 -0800 + + svg: Label for cairo_svg_unit_t doxygen was incorrect + + src/cairo-svg.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 742199768db7128f4f1cebcc14ec687f816ae2fa +Author: Bryce Harrington +AuthorDate: Mon Dec 11 14:43:50 2017 -0800 +Commit: Bryce Harrington +CommitDate: Mon Dec 11 14:44:07 2017 -0800 + + Bump version for new development tree, 1.15.9 + + cairo-version.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5e6b9aeb5e3402ff17ae8ee8548ae2341c2f7d59 Author: Bryce Harrington AuthorDate: Mon Dec 11 13:02:28 2017 -0800 Commit: Bryce Harrington -CommitDate: Mon Dec 11 13:02:38 2017 -0800 +CommitDate: Mon Dec 11 14:44:07 2017 -0800 1.15.10 release @@ -14,6 +1019,33 @@ CommitDate: Mon Dec 11 13:02:38 2017 -0800 cairo-version.h | 2 +- 2 files changed, 73 insertions(+), 1 deletion(-) +commit 19ee9211879ad8c90ee7d467d8d9495dc9a0fa88 +Author: Antonio Ospite +AuthorDate: Fri Dec 8 09:44:27 2017 +0100 +Commit: Bryce Harrington +CommitDate: Sun Dec 10 20:13:19 2017 -0800 + + svg: fix compilation with MSVC which doesn't support C99 initializers + + Reviewed-by: Bryce Harrington + Tested-by: John Emmas + + src/cairo-svg-surface.c | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +commit f9cf6f9200f3c84f8601a78ea73330eeed0c3e12 +Author: Adrian Johnson +AuthorDate: Fri Dec 8 18:13:20 2017 +1030 +Commit: Adrian Johnson +CommitDate: Fri Dec 8 18:13:20 2017 +1030 + + ps: fix compile warning + + https://lists.cairographics.org/archives/cairo/2017-December/028481.html + + src/cairo-ps-surface.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + commit f723ce31920cf5d5fe0ba417bb4b50b62a3ac4e6 Author: Bryce Harrington AuthorDate: Thu Dec 7 15:53:16 2017 -0800 diff --git a/WebKitLibraries/cairo/Makefile.in b/WebKitLibraries/cairo/Makefile.in index 7ef998e7f..2a38c40a9 100644 --- a/WebKitLibraries/cairo/Makefile.in +++ b/WebKitLibraries/cairo/Makefile.in @@ -145,19 +145,18 @@ CONFIG_CLEAN_FILES = cairo-uninstalled.pc cairo-xlib-uninstalled.pc \ cairo-qt-uninstalled.pc cairo-quartz-uninstalled.pc \ cairo-quartz-font-uninstalled.pc \ cairo-quartz-image-uninstalled.pc cairo-win32-uninstalled.pc \ - cairo-win32-font-uninstalled.pc cairo-skia-uninstalled.pc \ - cairo-os2-uninstalled.pc cairo-beos-uninstalled.pc \ - cairo-drm-uninstalled.pc cairo-gallium-uninstalled.pc \ - cairo-png-uninstalled.pc cairo-gl-uninstalled.pc \ - cairo-glesv2-uninstalled.pc cairo-glesv3-uninstalled.pc \ - cairo-cogl-uninstalled.pc cairo-directfb-uninstalled.pc \ - cairo-vg-uninstalled.pc cairo-egl-uninstalled.pc \ - cairo-glx-uninstalled.pc cairo-wgl-uninstalled.pc \ - cairo-script-uninstalled.pc cairo-ft-uninstalled.pc \ - cairo-fc-uninstalled.pc cairo-ps-uninstalled.pc \ - cairo-pdf-uninstalled.pc cairo-svg-uninstalled.pc \ - cairo-tee-uninstalled.pc cairo-xml-uninstalled.pc \ - cairo-gobject-uninstalled.pc + cairo-win32-font-uninstalled.pc cairo-os2-uninstalled.pc \ + cairo-beos-uninstalled.pc cairo-drm-uninstalled.pc \ + cairo-gallium-uninstalled.pc cairo-png-uninstalled.pc \ + cairo-gl-uninstalled.pc cairo-glesv2-uninstalled.pc \ + cairo-glesv3-uninstalled.pc cairo-cogl-uninstalled.pc \ + cairo-directfb-uninstalled.pc cairo-vg-uninstalled.pc \ + cairo-egl-uninstalled.pc cairo-glx-uninstalled.pc \ + cairo-wgl-uninstalled.pc cairo-script-uninstalled.pc \ + cairo-ft-uninstalled.pc cairo-fc-uninstalled.pc \ + cairo-ps-uninstalled.pc cairo-pdf-uninstalled.pc \ + cairo-svg-uninstalled.pc cairo-tee-uninstalled.pc \ + cairo-xml-uninstalled.pc cairo-gobject-uninstalled.pc CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -676,7 +675,6 @@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shm_LIBS = @shm_LIBS@ -skia_DIR = @skia_DIR@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -837,8 +835,6 @@ cairo-win32-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cair cd $(top_builddir) && $(SHELL) ./config.status $@ cairo-win32-font-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ -cairo-skia-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ cairo-os2-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ cairo-beos-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in diff --git a/WebKitLibraries/cairo/NEWS b/WebKitLibraries/cairo/NEWS index 9f50d73c0..acac1ed6f 100644 --- a/WebKitLibraries/cairo/NEWS +++ b/WebKitLibraries/cairo/NEWS @@ -1,3 +1,52 @@ +Release 1.15.12 (2018-04-04 Bryce Harrington ) +======================================================================== +The main focus for this release is the addition of Variable Font +support. Variable fonts are single font files with various typography +characteristics, such as weight or slant, that users of the font can +adjust between two points. Effectively this enables a single font to +behave as multiple fonts. + +The Skia backend is disabled in this release, due to severe bitrot, and +will be removed in future releases. Contact the cairo team if you have +a need of this backend. + +For a complete log of changes, please see + + http://cairographics.org/releases/ChangeLog.1.15.12 + +Features and Enhancements +------------------------- +* Variable font support +* Skia backend is disabled + +API Changes +----------- +* cairo_font_options_get_variations() and + cairo_font_options_set_variations() are added. + +Dependency Changes +------------------ +None + +Performance Optimizations +------------------------- +None + +Bug Fixes +--------- +* Fix errors in csi-trace --help and --version options +* Fix a 'memory leak' in the image compositor, with + pixman_glyph_cache_t. +* Fix access of uninitialized memory found by valgrind + (Bug #91271) +* Fix improper initialization of memory in + _cairo_ft_font_face_create_for_pattern() + (Bug #105084) +* Fix multi-monitor virtual desktop with negative coords on Win32 + (Bug #100793) +* Fix issues occuring with older FreeType versions. + + Release 1.15.10 (2017-12-07 Bryce Harrington ) ======================================================================== This release adds GLESv3 support to the cairo_gl backend, adds diff --git a/WebKitLibraries/cairo/RELEASING b/WebKitLibraries/cairo/RELEASING index b91cc60f5..7a52d70b0 100644 --- a/WebKitLibraries/cairo/RELEASING +++ b/WebKitLibraries/cairo/RELEASING @@ -173,18 +173,25 @@ Here are the steps to follow to create a new cairo release: previous versions, remove manual-${THIS_RELEASE} and release/cairo-${THIS_RELEASE}. -8) Update master (or the stable branch) version number. +8) Push the new tag out to the central tree with a command like: - For Micro releases (X.Y.Z), increment cairo_version_micro to the - next larger (odd) number in cairo-version.h, commit, and push. + git push origin master ${THIS_RELEASE} + +9) Update master (or the stable branch) version number. + + For Micro releases (X.Y.Z+2), increment cairo_version_micro to + the next larger (odd) number in cairo-version.h, commit, and + push. + + DEVEL_VERSION="X.Y.Z+1" # e.g. 1.15.10 -> 1.15.11 For Minor releases (X.Y.0), increment cairo_version_minor to the next larger (odd) number, and set cairo_version_micro to 1. Then commit and push. -9) Push the new tag out to the central tree with a command like: + DEVEL_VERSION="X.Y.Z+1" # e.g. 1.16.0 -> 1.17.1 - git push origin master ${THIS_RELEASE} + git commit cairo-version.h -m "Bump version for ${DEVEL_VERSION}" 10) Edit the cairo bugzilla product and add the new version numbers. diff --git a/WebKitLibraries/cairo/build/Makefile.win32.features b/WebKitLibraries/cairo/build/Makefile.win32.features index 7f62d975e..b15c4488f 100644 --- a/WebKitLibraries/cairo/build/Makefile.win32.features +++ b/WebKitLibraries/cairo/build/Makefile.win32.features @@ -11,7 +11,6 @@ CAIRO_HAS_QUARTZ_FONT=0 CAIRO_HAS_QUARTZ_IMAGE_SURFACE=0 CAIRO_HAS_WIN32_SURFACE=1 CAIRO_HAS_WIN32_FONT=1 -CAIRO_HAS_SKIA_SURFACE=0 CAIRO_HAS_OS2_SURFACE=0 CAIRO_HAS_BEOS_SURFACE=0 CAIRO_HAS_DRM_SURFACE=0 diff --git a/WebKitLibraries/cairo/build/Makefile.win32.features-h b/WebKitLibraries/cairo/build/Makefile.win32.features-h index 2825f0c3c..5759b48a3 100644 --- a/WebKitLibraries/cairo/build/Makefile.win32.features-h +++ b/WebKitLibraries/cairo/build/Makefile.win32.features-h @@ -38,9 +38,6 @@ endif ifeq ($(CAIRO_HAS_WIN32_FONT),1) @echo "#define CAIRO_HAS_WIN32_FONT 1" >> $(top_srcdir)/src/cairo-features.h endif -ifeq ($(CAIRO_HAS_SKIA_SURFACE),1) - @echo "#define CAIRO_HAS_SKIA_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h -endif ifeq ($(CAIRO_HAS_OS2_SURFACE),1) @echo "#define CAIRO_HAS_OS2_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h endif diff --git a/WebKitLibraries/cairo/build/aclocal.float.m4 b/WebKitLibraries/cairo/build/aclocal.float.m4 index ca14ea377..85adf6d5f 100644 --- a/WebKitLibraries/cairo/build/aclocal.float.m4 +++ b/WebKitLibraries/cairo/build/aclocal.float.m4 @@ -12,7 +12,7 @@ AC_DEFUN([AX_C_FLOAT_WORDS_BIGENDIAN], [AC_CACHE_CHECK(whether float word ordering is bigendian, ax_cv_c_float_words_bigendian, [ -# The endianess is detected by first compiling C code that contains a special +# The endianness is detected by first compiling C code that contains a special # double float value, then grepping the resulting object file for certain # strings of ascii values. The double is specially crafted to have a # binary representation that corresponds with a simple string. In this diff --git a/WebKitLibraries/cairo/build/configure.ac.features b/WebKitLibraries/cairo/build/configure.ac.features index aa48652f2..e0a46069c 100644 --- a/WebKitLibraries/cairo/build/configure.ac.features +++ b/WebKitLibraries/cairo/build/configure.ac.features @@ -369,7 +369,7 @@ AC_DEFUN([CAIRO_REPORT], echo " Mime: yes (always builtin)" echo " Tee: $use_tee" echo " XML: $use_xml" - echo " Skia: $use_skia" + #echo " Skia: $use_skia" echo " Xlib: $use_xlib" echo " Xlib Xrender: $use_xlib_xrender" echo " Qt: $use_qt" diff --git a/WebKitLibraries/cairo/cairo-version.h b/WebKitLibraries/cairo/cairo-version.h index 2f7493740..ed38ff293 100644 --- a/WebKitLibraries/cairo/cairo-version.h +++ b/WebKitLibraries/cairo/cairo-version.h @@ -3,6 +3,6 @@ #define CAIRO_VERSION_MAJOR 1 #define CAIRO_VERSION_MINOR 15 -#define CAIRO_VERSION_MICRO 10 +#define CAIRO_VERSION_MICRO 12 #endif diff --git a/WebKitLibraries/cairo/config.h b/WebKitLibraries/cairo/config.h index ef5a375ee..738b25774 100644 --- a/WebKitLibraries/cairo/config.h +++ b/WebKitLibraries/cairo/config.h @@ -54,6 +54,9 @@ significant word first */ #undef FLOAT_WORDS_BIGENDIAN +/* Define to (0) if freetype2 does not support color fonts */ +#undef FT_HAS_COLOR + /* Enable pixman glyph cache */ #undef HAS_PIXMAN_GLYPHS @@ -112,6 +115,12 @@ /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK +/* Define to 1 if you have the `FT_Done_MM_Var' function. */ +#undef HAVE_FT_DONE_MM_VAR + +/* Define to 1 if you have the `FT_Get_Var_Design_Coordinates' function. */ +#undef HAVE_FT_GET_VAR_DESIGN_COORDINATES + /* Define to 1 if you have the `FT_Get_X11_Font_Format' function. */ #undef HAVE_FT_GET_X11_FONT_FORMAT @@ -183,6 +192,9 @@ /* Define to 1 if you have the `mmap' function. */ #undef HAVE_MMAP +/* Define to 1 if you have the `newlocale' function. */ +#undef HAVE_NEWLOCALE + /* Enable if you have MacOS X atomic operations */ #undef HAVE_OS_ATOMIC_OPS @@ -222,6 +234,9 @@ /* Define to 1 if you have the `strndup' function. */ #undef HAVE_STRNDUP +/* Define to 1 if you have the `strtod_l' function. */ +#undef HAVE_STRTOD_L + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_INT_TYPES_H @@ -285,6 +300,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_X11_EXTENSIONS_XSHM_H +/* Define to 1 if you have the header file. */ +#undef HAVE_XLOCALE_H + /* Define to 1 if you have the `XRenderCreateConicalGradient' function. */ #undef HAVE_XRENDERCREATECONICALGRADIENT @@ -328,7 +346,7 @@ #define PACKAGE_URL /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.15.10" +#define PACKAGE_VERSION "1.15.12" /* Shared library file extension */ #define SHARED_LIB_EXT ".so" diff --git a/WebKitLibraries/cairo/config.h.in b/WebKitLibraries/cairo/config.h.in index 9fca9f0e9..812ef575a 100644 --- a/WebKitLibraries/cairo/config.h.in +++ b/WebKitLibraries/cairo/config.h.in @@ -52,6 +52,9 @@ significant word first */ #undef FLOAT_WORDS_BIGENDIAN +/* Define to (0) if freetype2 does not support color fonts */ +#undef FT_HAS_COLOR + /* Enable pixman glyph cache */ #undef HAS_PIXMAN_GLYPHS @@ -110,6 +113,12 @@ /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK +/* Define to 1 if you have the `FT_Done_MM_Var' function. */ +#undef HAVE_FT_DONE_MM_VAR + +/* Define to 1 if you have the `FT_Get_Var_Design_Coordinates' function. */ +#undef HAVE_FT_GET_VAR_DESIGN_COORDINATES + /* Define to 1 if you have the `FT_Get_X11_Font_Format' function. */ #undef HAVE_FT_GET_X11_FONT_FORMAT @@ -181,6 +190,9 @@ /* Define to 1 if you have the `mmap' function. */ #undef HAVE_MMAP +/* Define to 1 if you have the `newlocale' function. */ +#undef HAVE_NEWLOCALE + /* Enable if you have MacOS X atomic operations */ #undef HAVE_OS_ATOMIC_OPS @@ -220,6 +232,9 @@ /* Define to 1 if you have the `strndup' function. */ #undef HAVE_STRNDUP +/* Define to 1 if you have the `strtod_l' function. */ +#undef HAVE_STRTOD_L + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_INT_TYPES_H @@ -277,6 +292,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_X11_EXTENSIONS_XSHM_H +/* Define to 1 if you have the header file. */ +#undef HAVE_XLOCALE_H + /* Define to 1 if you have the `XRenderCreateConicalGradient' function. */ #undef HAVE_XRENDERCREATECONICALGRADIENT diff --git a/WebKitLibraries/cairo/configure b/WebKitLibraries/cairo/configure index facaaba88..d5dad5e2d 100644 --- a/WebKitLibraries/cairo/configure +++ b/WebKitLibraries/cairo/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for cairo 1.15.10. +# Generated by GNU Autoconf 2.69 for cairo 1.15.12. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='cairo' PACKAGE_TARNAME='cairo' -PACKAGE_VERSION='1.15.10' -PACKAGE_STRING='cairo 1.15.10' +PACKAGE_VERSION='1.15.12' +PACKAGE_STRING='cairo 1.15.12' PACKAGE_BUGREPORT='http://bugs.freedesktop.org/enter_bug.cgi?product=cairo' PACKAGE_URL='http://cairographics.org/' @@ -763,9 +763,6 @@ CAIRO_HAS_BEOS_SURFACE_FALSE CAIRO_HAS_BEOS_SURFACE_TRUE CAIRO_HAS_OS2_SURFACE_FALSE CAIRO_HAS_OS2_SURFACE_TRUE -CAIRO_HAS_SKIA_SURFACE_FALSE -CAIRO_HAS_SKIA_SURFACE_TRUE -skia_DIR CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE_FALSE CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE_TRUE GS @@ -1020,9 +1017,6 @@ enable_quartz_font enable_quartz_image enable_win32 enable_win32_font -enable_skia -with_skia -with_skia_build_type enable_os2 enable_beos enable_drm @@ -1672,7 +1666,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures cairo 1.15.10 to adapt to many kinds of systems. +\`configure' configures cairo 1.15.12 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1747,7 +1741,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of cairo 1.15.10:";; + short | recursive ) echo "Configuration of cairo 1.15.12:";; esac cat <<\_ACEOF @@ -1806,9 +1800,6 @@ Optional Features: --enable-win32-font=[no/auto/yes] Enable cairo's Microsoft Windows font backend feature [default=auto] - --enable-skia=[no/auto/yes] - Enable cairo's Skia surface backend feature - [default=no] --enable-os2=[no/auto/yes] Enable cairo's OS/2 surface backend feature [default=no] @@ -1908,11 +1899,6 @@ Optional Packages: compiler's sysroot if not specified). --with-html-dir=PATH path to installed docs --with-x use the X Window System - --with-skia=/path/to/skia - directory to find compiled skia sources - --with-skia-build-type=(Release|Debug) - build of skia to link with, default is Release - --with-gallium=/path/to/mesa directory to find gallium enabled mesa @@ -2079,7 +2065,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -cairo configure 1.15.10 +cairo configure 1.15.12 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2806,7 +2792,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by cairo $as_me 1.15.10, which was +It was created by cairo $as_me 1.15.12, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -5112,7 +5098,7 @@ fi # Define the identity of the package. PACKAGE='cairo' - VERSION='1.15.10' + VERSION='1.15.12' # Some tools Automake needs. @@ -14215,10 +14201,10 @@ fi CAIRO_VERSION_MAJOR=1 CAIRO_VERSION_MINOR=15 -CAIRO_VERSION_MICRO=10 +CAIRO_VERSION_MICRO=12 CAIRO_VERSION_SONUM=2 CAIRO_RELEASE_STATUS=snapshot -CAIRO_LIBTOOL_VERSION_INFO=11512:0:11510 +CAIRO_LIBTOOL_VERSION_INFO=11514:0:11512 @@ -19779,7 +19765,7 @@ if ${ax_cv_c_float_words_bigendian+:} false; then : else -# The endianess is detected by first compiling C code that contains a special +# The endianness is detected by first compiling C code that contains a special # double float value, then grepping the resulting object file for certain # strings of ascii values. The double is specially crafted to have a # binary representation that corresponds with a simple string. In this @@ -21485,6 +21471,31 @@ else fi +for ac_header in xlocale.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "xlocale.h" "ac_cv_header_xlocale_h" "$ac_includes_default" +if test "x$ac_cv_header_xlocale_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_XLOCALE_H 1 +_ACEOF + +fi + +done + +for ac_func in newlocale strtod_l +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 $as_echo_n "checking for X... " >&6; } @@ -25973,270 +25984,6 @@ fi - # Check whether --enable-skia was given. -if test "${enable_skia+set}" = set; then : - enableval=$enable_skia; enable_skia=$enableval -else - enable_skia=no -fi - - case $enable_skia in #( - no) : - use_skia="no (disabled, use --enable-skia to enable)" - ;; #( - yes|auto) : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Skia surface backend feature" >&5 -$as_echo_n "checking for cairo's Skia surface backend feature... " >&6; } - echo - - use_skia=yes - skia_BASE="cairo" -skia_REQUIRES="$ac_env_skia_REQUIRES_value" -skia_CFLAGS="$ac_env_skia_CFLAGS_value" -skia_NONPKGCONFIG_CFLAGS="$ac_env_skia_NONPKGCONFIG_CFLAGS_value" -skia_LIBS="$ac_env_skia_LIBS_value" -skia_NONPKGCONFIG_LIBS="$ac_env_skia_NONPKGCONFIG_LIBS_value" -skia_NONPKGCONFIG_EXTRA_LIBS="$ac_env_skia_NONPKGCONFIG_EXTRA_LIBS_value" - - - - -# Check whether --with-skia was given. -if test "${with_skia+set}" = set; then : - withval=$with_skia; skia_DIR="$withval" -else - skia_DIR="`pwd`/../skia" -fi - - -# Check whether --with-skia-build-type was given. -if test "${with_skia_build_type+set}" = set; then : - withval=$with_skia_build_type; skia_BUILD_TYPE="$withval" -else - skia_BUILD_TYPE="Release" -fi - - skia_NONPKGCONFIG_CFLAGS="-I$skia_DIR/include/config -I$skia_DIR/include/core -I$skia_DIR/include/effects" - if test "x$skia_BUILD_TYPE" = "xRelease"; then - skia_NONPKGCONFIG_CFLAGS="-DSK_RELEASE -DSK_CAN_USE_FLOAT $skia_NONPKGCONFIG_CFLAGS" - fi - skia_NONPKGCONFIG_LIBS="-L$skia_DIR/out/$skia_BUILD_TYPE/lib.target/ -lskia -lstdc++" - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Skia surface backend feature could be enabled" >&5 -$as_echo_n "checking whether cairo's Skia surface backend feature could be enabled... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_skia" >&5 -$as_echo "$use_skia" >&6; } - - if test "x$enable_skia" = "xyes" -a "x$use_skia" != xyes; then : - as_fn_error $? " Skia surface backend feature could not be enabled" "$LINENO" 5 - -fi ;; #( - *) : - as_fn_error $? "invalid argument passed to --enable-skia: \`$use_skia', should be one of [no/auto/yes]" "$LINENO" 5 - ;; -esac - if test "x$use_skia" = "xyes"; then : - CAIRO_REQUIRES="$skia_REQUIRES"" ${CAIRO_REQUIRES}" - - CAIRO_CFLAGS="$skia_CFLAGS"" ${CAIRO_CFLAGS}" - - CAIRO_NONPKGCONFIG_CFLAGS="$skia_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" - - CAIRO_LIBS="$skia_LIBS"" ${CAIRO_LIBS}" - - CAIRO_NONPKGCONFIG_LIBS="$skia_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" - - -else - unset skia_BASE -unset skia_REQUIRES -unset skia_CFLAGS -unset skia_NONPKGCONFIG_CFLAGS -unset skia_LIBS -unset skia_NONPKGCONFIG_LIBS -unset skia_NONPKGCONFIG_EXTRA_LIBS - - -fi - - if test "x$use_skia" = xyes; then - CAIRO_HAS_SKIA_SURFACE_TRUE= - CAIRO_HAS_SKIA_SURFACE_FALSE='#' -else - CAIRO_HAS_SKIA_SURFACE_TRUE='#' - CAIRO_HAS_SKIA_SURFACE_FALSE= -fi - - - cr_make_tmp='CAIRO_HAS_SKIA_SURFACE=0' - CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} -""$cr_make_tmp" - - - cr_make_tmp='' - CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} -""$cr_make_tmp" - - CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} -""$cr_make_tmp" - cr_make_tmp='' - CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} -""$cr_make_tmp" - - CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} -""$cr_make_tmp" - - - - cr_make_tmp='unsupported_cairo_headers += $(cairo_skia_headers)' - CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} -""$cr_make_tmp" - - CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} -""$cr_make_tmp" - cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_skia_headers)' - CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} -""$cr_make_tmp" - - CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} -""$cr_make_tmp" - - - cr_make_tmp='all_cairo_headers += $(cairo_skia_headers) -all_cairo_private += $(cairo_skia_private) -all_cairo_cxx_sources += $(cairo_skia_cxx_sources) -all_cairo_sources += $(cairo_skia_sources)' - CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} -""$cr_make_tmp" - - CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} -""$cr_make_tmp" - cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_skia_headers) -all_cairo_boilerplate_private += $(cairo_boilerplate_skia_private) -all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_skia_cxx_sources) -all_cairo_boilerplate_sources += $(cairo_boilerplate_skia_sources)' - CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} -""$cr_make_tmp" - - CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} -""$cr_make_tmp" - - - cr_make_tmp='enabled_cairo_headers += $(cairo_skia_headers) -enabled_cairo_private += $(cairo_skia_private) -enabled_cairo_cxx_sources += $(cairo_skia_cxx_sources) -enabled_cairo_sources += $(cairo_skia_sources)' - CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} -"'if CAIRO_HAS_SKIA_SURFACE' - CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} -""$cr_make_tmp" - CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} -"'endif' - - CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} -"'ifeq ($(CAIRO_HAS_SKIA_SURFACE),1)' - CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} -""$cr_make_tmp" - CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} -"'endif' - cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_skia_headers) -enabled_cairo_boilerplate_private += $(cairo_boilerplate_skia_private) -enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_skia_cxx_sources) -enabled_cairo_boilerplate_sources += $(cairo_boilerplate_skia_sources)' - CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} -"'if CAIRO_HAS_SKIA_SURFACE' - CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} -""$cr_make_tmp" - CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} -"'endif' - - CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} -"'ifeq ($(CAIRO_HAS_SKIA_SURFACE),1)' - CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} -""$cr_make_tmp" - CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} -"'endif' - - - - - if test "x$use_skia" = xyes; then : - : - ac_config_files="$ac_config_files src/cairo-skia.pc:src/cairo-features.pc.in" - - -fi - if test "x$use_skia" = xyes; then : - : - ac_config_files="$ac_config_files cairo-skia-uninstalled.pc:src/cairo-features-uninstalled.pc.in" - - -fi - cr_make_tmp='all_cairo_pkgconf += cairo-skia.pc' - CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} -""$cr_make_tmp" - - CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} -""$cr_make_tmp" - - - cr_make_tmp='enabled_cairo_pkgconf += cairo-skia.pc' - CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} -"'if CAIRO_HAS_SKIA_SURFACE' - CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} -""$cr_make_tmp" - CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} -"'endif' - - CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} -"'ifeq ($(CAIRO_HAS_SKIA_SURFACE),1)' - CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} -""$cr_make_tmp" - CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} -"'endif' - - - if test "x$use_skia" = xyes; then : - : - CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_SKIA_SURFACE' - - -fi - - if test "x$use_skia" != xyes; then : - : - CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_SKIA_SURFACE' - - - -fi - - cr_make_tmp=' @echo "#define CAIRO_HAS_SKIA_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' - CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} -"'ifeq ($(CAIRO_HAS_SKIA_SURFACE),1)' - CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} -""$cr_make_tmp" - CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} -"'endif' - - - if test "x$use_skia" = xyes; then : - : - CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} - -"'--- The Skia surface backend feature is still under active development and is ---- included in this release only as a preview. It does NOT fully work yet ---- and incompatible changes may yet be made to Skia surface backend specific ---- API.' - - - -fi - - - @@ -31670,7 +31417,7 @@ if test "x$use_ft" = "xyes"; then LIBS="$LIBS $ft_LIBS" CFLAGS="$CFLAGS $ft_CFLAGS" - for ac_func in FT_Get_X11_Font_Format FT_GlyphSlot_Embolden FT_GlyphSlot_Oblique FT_Load_Sfnt_Table FT_Library_SetLcdFilter + for ac_func in FT_Get_X11_Font_Format FT_GlyphSlot_Embolden FT_GlyphSlot_Oblique FT_Load_Sfnt_Table FT_Library_SetLcdFilter FT_Get_Var_Design_Coordinates FT_Done_MM_Var do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -31683,6 +31430,39 @@ fi done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT_HAS_COLOR" >&5 +$as_echo_n "checking for FT_HAS_COLOR... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include FT_FREETYPE_H + +int +main () +{ + +FT_Long has_color = FT_HAS_COLOR( ((FT_Face)NULL) ); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + + +$as_echo "#define FT_HAS_COLOR(x) (0)" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, disable color font (freetype2 >= 2.5.1 is required)" >&5 +$as_echo "no, disable color font (freetype2 >= 2.5.1 is required)" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$_save_libs" CFLAGS="$_save_cflags" fi @@ -36185,9 +35965,6 @@ fi need_cxx="no" -if test "x$use_skia" = "xyes"; then : - need_cxx="yes" -fi if test "x$use_qt" = "xyes"; then : need_cxx="yes" fi @@ -36549,10 +36326,6 @@ if test -z "${CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE_TRUE}" && test -z "${CAIRO_C as_fn_error $? "conditional \"CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${CAIRO_HAS_SKIA_SURFACE_TRUE}" && test -z "${CAIRO_HAS_SKIA_SURFACE_FALSE}"; then - as_fn_error $? "conditional \"CAIRO_HAS_SKIA_SURFACE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${CAIRO_HAS_OS2_SURFACE_TRUE}" && test -z "${CAIRO_HAS_OS2_SURFACE_FALSE}"; then as_fn_error $? "conditional \"CAIRO_HAS_OS2_SURFACE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -37110,7 +36883,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by cairo $as_me 1.15.10, which was +This file was extended by cairo $as_me 1.15.12, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -37177,7 +36950,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -cairo config.status 1.15.10 +cairo config.status 1.15.12 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -37845,20 +37618,6 @@ CAIRO_MAKEFILE_win32_features_h_WIN32='$CAIRO_MAKEFILE_win32_features_h_WIN32' win32_font_NONPKGCONFIG_EXTRA_LIBS='$win32_font_NONPKGCONFIG_EXTRA_LIBS' win32_font_NONPKGCONFIG_CFLAGS='$win32_font_NONPKGCONFIG_CFLAGS' - SED='$SED' - skia_BASE='$skia_BASE' - skia_REQUIRES='$skia_REQUIRES' - skia_NONPKGCONFIG_LIBS='$skia_NONPKGCONFIG_LIBS' - skia_NONPKGCONFIG_EXTRA_LIBS='$skia_NONPKGCONFIG_EXTRA_LIBS' - skia_NONPKGCONFIG_CFLAGS='$skia_NONPKGCONFIG_CFLAGS' - - SED='$SED' - skia_BASE='$skia_BASE' - skia_REQUIRES='$skia_REQUIRES' - skia_NONPKGCONFIG_LIBS='$skia_NONPKGCONFIG_LIBS' - skia_NONPKGCONFIG_EXTRA_LIBS='$skia_NONPKGCONFIG_EXTRA_LIBS' - skia_NONPKGCONFIG_CFLAGS='$skia_NONPKGCONFIG_CFLAGS' - SED='$SED' os2_BASE='$os2_BASE' os2_REQUIRES='$os2_REQUIRES' @@ -38225,8 +37984,6 @@ do "cairo-win32-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-win32-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; "src/cairo-win32-font.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-win32-font.pc:src/cairo-features.pc.in" ;; "cairo-win32-font-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-win32-font-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; - "src/cairo-skia.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-skia.pc:src/cairo-features.pc.in" ;; - "cairo-skia-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-skia-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; "src/cairo-os2.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-os2.pc:src/cairo-features.pc.in" ;; "cairo-os2-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-os2-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; "src/cairo-beos.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-beos.pc:src/cairo-features.pc.in" ;; @@ -39957,14 +39714,6 @@ $as_echo "$as_me: $_config_file is unchanged" >&6;} $SED " s%@FEATURE_PC@%cairo-win32-font%g; s%@FEATURE_NAME@%Microsoft Windows font backend%g; s%@FEATURE_BASE@%$win32_font_BASE%g; s%@FEATURE_REQUIRES@%$win32_font_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$win32_font_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$win32_font_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$win32_font_NONPKGCONFIG_CFLAGS%g; " < "cairo-win32-font-uninstalled.pc.tmp" > "cairo-win32-font-uninstalled.pc" && rm -f "cairo-win32-font-uninstalled.pc.tmp" || as_fn_error $? "failed to update cairo-win32-font-uninstalled.pc" "$LINENO" 5 ;; - "src/cairo-skia.pc":F) mv "src/cairo-skia.pc" "src/cairo-skia.pc.tmp" && - $SED " s%@FEATURE_PC@%cairo-skia%g; s%@FEATURE_NAME@%Skia surface backend%g; s%@FEATURE_BASE@%$skia_BASE%g; s%@FEATURE_REQUIRES@%$skia_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$skia_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$skia_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$skia_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-skia.pc.tmp" > "src/cairo-skia.pc" && rm -f "src/cairo-skia.pc.tmp" || - as_fn_error $? "failed to update src/cairo-skia.pc" "$LINENO" 5 - ;; - "cairo-skia-uninstalled.pc":F) mv "cairo-skia-uninstalled.pc" "cairo-skia-uninstalled.pc.tmp" && - $SED " s%@FEATURE_PC@%cairo-skia%g; s%@FEATURE_NAME@%Skia surface backend%g; s%@FEATURE_BASE@%$skia_BASE%g; s%@FEATURE_REQUIRES@%$skia_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$skia_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$skia_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$skia_NONPKGCONFIG_CFLAGS%g; " < "cairo-skia-uninstalled.pc.tmp" > "cairo-skia-uninstalled.pc" && rm -f "cairo-skia-uninstalled.pc.tmp" || - as_fn_error $? "failed to update cairo-skia-uninstalled.pc" "$LINENO" 5 - ;; "src/cairo-os2.pc":F) mv "src/cairo-os2.pc" "src/cairo-os2.pc.tmp" && $SED " s%@FEATURE_PC@%cairo-os2%g; s%@FEATURE_NAME@%OS/2 surface backend%g; s%@FEATURE_BASE@%$os2_BASE%g; s%@FEATURE_REQUIRES@%$os2_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$os2_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$os2_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$os2_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-os2.pc.tmp" > "src/cairo-os2.pc" && rm -f "src/cairo-os2.pc.tmp" || as_fn_error $? "failed to update src/cairo-os2.pc" "$LINENO" 5 @@ -40199,7 +39948,7 @@ fi echo " Mime: yes (always builtin)" echo " Tee: $use_tee" echo " XML: $use_xml" - echo " Skia: $use_skia" + #echo " Skia: $use_skia" echo " Xlib: $use_xlib" echo " Xlib Xrender: $use_xlib_xrender" echo " Qt: $use_qt" diff --git a/WebKitLibraries/cairo/configure.ac b/WebKitLibraries/cairo/configure.ac index d82db4578..59d87eb7f 100644 --- a/WebKitLibraries/cairo/configure.ac +++ b/WebKitLibraries/cairo/configure.ac @@ -76,6 +76,9 @@ if test "x$have_dlsym" = "xyes"; then fi AM_CONDITIONAL(CAIRO_HAS_DLSYM, test "x$have_dlsym" = "xyes") +AC_CHECK_HEADERS(xlocale.h) +AC_CHECK_FUNCS(newlocale strtod_l) + dnl =========================================================================== CAIRO_ENABLE_SURFACE_BACKEND(xlib, Xlib, auto, [ @@ -246,24 +249,28 @@ AM_CONDITIONAL(CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE, test "x$test_win32_printin dnl =========================================================================== -CAIRO_ENABLE_SURFACE_BACKEND(skia, Skia, no, [ - AC_ARG_WITH([skia], - [AS_HELP_STRING([--with-skia=/path/to/skia], - [directory to find compiled skia sources])], - [skia_DIR="$withval"], - [skia_DIR="`pwd`/../skia"]) - AC_ARG_WITH([skia-build-type], - [AS_HELP_STRING([--with-skia-build-type=(Release|Debug)] - [build of skia to link with, default is Release])], - [skia_BUILD_TYPE="$withval"], - [skia_BUILD_TYPE="Release"]) - skia_NONPKGCONFIG_CFLAGS="-I$skia_DIR/include/config -I$skia_DIR/include/core -I$skia_DIR/include/effects" - if test "x$skia_BUILD_TYPE" = "xRelease"; then - skia_NONPKGCONFIG_CFLAGS="-DSK_RELEASE -DSK_CAN_USE_FLOAT $skia_NONPKGCONFIG_CFLAGS" - fi - skia_NONPKGCONFIG_LIBS="-L$skia_DIR/out/$skia_BUILD_TYPE/lib.target/ -lskia -lstdc++" - AC_SUBST(skia_DIR) -]) +dnl NOTE: We're temporarily disabiling this backend to see if anyone +dnl is actually using it. If you are, please mention on the cairo +dnl mailing list. + +dnl CAIRO_ENABLE_SURFACE_BACKEND(skia, Skia, no, [ +dnl AC_ARG_WITH([skia], +dnl [AS_HELP_STRING([--with-skia=/path/to/skia], +dnl [directory to find compiled skia sources])], +dnl [skia_DIR="$withval"], +dnl [skia_DIR="`pwd`/../skia"]) +dnl AC_ARG_WITH([skia-build-type], +dnl [AS_HELP_STRING([--with-skia-build-type=(Release|Debug)] +dnl [build of skia to link with, default is Release])], +dnl [skia_BUILD_TYPE="$withval"], +dnl [skia_BUILD_TYPE="Release"]) +dnl skia_NONPKGCONFIG_CFLAGS="-I$skia_DIR/include/config -I$skia_DIR/include/core -I$skia_DIR/include/effects" +dnl if test "x$skia_BUILD_TYPE" = "xRelease"; then +dnl skia_NONPKGCONFIG_CFLAGS="-DSK_RELEASE -DSK_CAN_USE_FLOAT $skia_NONPKGCONFIG_CFLAGS" +dnl fi +dnl skia_NONPKGCONFIG_LIBS="-L$skia_DIR/out/$skia_BUILD_TYPE/lib.target/ -lskia -lstdc++" +dnl AC_SUBST(skia_DIR) +dnl ]) dnl =========================================================================== @@ -571,7 +578,18 @@ if test "x$use_ft" = "xyes"; then LIBS="$LIBS $ft_LIBS" CFLAGS="$CFLAGS $ft_CFLAGS" - AC_CHECK_FUNCS(FT_Get_X11_Font_Format FT_GlyphSlot_Embolden FT_GlyphSlot_Oblique FT_Load_Sfnt_Table FT_Library_SetLcdFilter) + AC_CHECK_FUNCS(FT_Get_X11_Font_Format FT_GlyphSlot_Embolden FT_GlyphSlot_Oblique FT_Load_Sfnt_Table FT_Library_SetLcdFilter FT_Get_Var_Design_Coordinates FT_Done_MM_Var) + + AC_MSG_CHECKING(for FT_HAS_COLOR) + AC_LINK_IFELSE([AC_LANG_PROGRAM([ +#include +#include FT_FREETYPE_H +],[ +FT_Long has_color = FT_HAS_COLOR( ((FT_Face)NULL) ); +])],[AC_MSG_RESULT([yes])],[ + AC_DEFINE([FT_HAS_COLOR(x)], [(0)], [Define to (0) if freetype2 does not support color fonts]) + AC_MSG_RESULT([no, disable color font (freetype2 >= 2.5.1 is required)]) +]) LIBS="$_save_libs" CFLAGS="$_save_cflags" @@ -866,7 +884,7 @@ dnl =========================================================================== dnl Extra stuff we need to do when building C++ code need_cxx="no" -AS_IF([test "x$use_skia" = "xyes"], [need_cxx="yes"]) +dnl AS_IF([test "x$use_skia" = "xyes"], [need_cxx="yes"]) AS_IF([test "x$use_qt" = "xyes"], [need_cxx="yes"]) AS_IF([test "x$use_beos" = "xyes"], [need_cxx="yes"]) diff --git a/WebKitLibraries/cairo/doc/Makefile.in b/WebKitLibraries/cairo/doc/Makefile.in index 20adcc80b..19c2c4e92 100644 --- a/WebKitLibraries/cairo/doc/Makefile.in +++ b/WebKitLibraries/cairo/doc/Makefile.in @@ -608,7 +608,6 @@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shm_LIBS = @shm_LIBS@ -skia_DIR = @skia_DIR@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ diff --git a/WebKitLibraries/cairo/doc/public/Makefile.in b/WebKitLibraries/cairo/doc/public/Makefile.in index 4b4c3541d..902644936 100644 --- a/WebKitLibraries/cairo/doc/public/Makefile.in +++ b/WebKitLibraries/cairo/doc/public/Makefile.in @@ -217,142 +217,137 @@ check_PROGRAMS = @CAIRO_HAS_WIN32_FONT_TRUE@am__append_53 = $(cairo_win32_font_cxx_sources) @CAIRO_HAS_WIN32_FONT_TRUE@am__append_54 = $(cairo_win32_font_sources) @CAIRO_HAS_WIN32_FONT_TRUE@am__append_55 = cairo-win32-font.pc -@CAIRO_HAS_SKIA_SURFACE_TRUE@am__append_56 = $(cairo_skia_headers) -@CAIRO_HAS_SKIA_SURFACE_TRUE@am__append_57 = $(cairo_skia_private) -@CAIRO_HAS_SKIA_SURFACE_TRUE@am__append_58 = $(cairo_skia_cxx_sources) -@CAIRO_HAS_SKIA_SURFACE_TRUE@am__append_59 = $(cairo_skia_sources) -@CAIRO_HAS_SKIA_SURFACE_TRUE@am__append_60 = cairo-skia.pc -@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_61 = $(cairo_os2_headers) -@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_62 = $(cairo_os2_private) -@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_63 = $(cairo_os2_cxx_sources) -@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_64 = $(cairo_os2_sources) -@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_65 = cairo-os2.pc -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_66 = $(cairo_beos_headers) -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_67 = $(cairo_beos_private) -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_68 = $(cairo_beos_cxx_sources) -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_69 = $(cairo_beos_sources) -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_70 = cairo-beos.pc -@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_71 = $(cairo_drm_headers) -@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_72 = $(cairo_drm_private) -@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_73 = $(cairo_drm_cxx_sources) -@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_74 = $(cairo_drm_sources) -@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_75 = cairo-drm.pc -@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_76 = $(cairo_gallium_headers) -@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_77 = $(cairo_gallium_private) -@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_78 = $(cairo_gallium_cxx_sources) -@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_79 = $(cairo_gallium_sources) -@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_80 = cairo-gallium.pc -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_81 = $(cairo_png_headers) -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_82 = $(cairo_png_private) -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_83 = $(cairo_png_cxx_sources) -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_84 = $(cairo_png_sources) -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_85 = cairo-png.pc -@CAIRO_HAS_GL_SURFACE_TRUE@am__append_86 = $(cairo_gl_headers) -@CAIRO_HAS_GL_SURFACE_TRUE@am__append_87 = $(cairo_gl_private) -@CAIRO_HAS_GL_SURFACE_TRUE@am__append_88 = $(cairo_gl_cxx_sources) -@CAIRO_HAS_GL_SURFACE_TRUE@am__append_89 = $(cairo_gl_sources) -@CAIRO_HAS_GL_SURFACE_TRUE@am__append_90 = cairo-gl.pc -@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_91 = $(cairo_glesv2_headers) -@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_92 = $(cairo_glesv2_private) -@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_93 = $(cairo_glesv2_cxx_sources) -@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_94 = $(cairo_glesv2_sources) -@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_95 = cairo-glesv2.pc -@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_96 = $(cairo_glesv3_headers) -@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_97 = $(cairo_glesv3_private) -@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_98 = $(cairo_glesv3_cxx_sources) -@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_99 = $(cairo_glesv3_sources) -@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_100 = cairo-glesv3.pc -@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_101 = $(cairo_cogl_headers) -@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_102 = $(cairo_cogl_private) -@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_103 = $(cairo_cogl_cxx_sources) -@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_104 = $(cairo_cogl_sources) -@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_105 = cairo-cogl.pc -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_106 = $(cairo_directfb_headers) -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_107 = $(cairo_directfb_private) -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_108 = $(cairo_directfb_cxx_sources) -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_109 = $(cairo_directfb_sources) -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_110 = cairo-directfb.pc -@CAIRO_HAS_VG_SURFACE_TRUE@am__append_111 = $(cairo_vg_headers) -@CAIRO_HAS_VG_SURFACE_TRUE@am__append_112 = $(cairo_vg_private) -@CAIRO_HAS_VG_SURFACE_TRUE@am__append_113 = $(cairo_vg_cxx_sources) -@CAIRO_HAS_VG_SURFACE_TRUE@am__append_114 = $(cairo_vg_sources) -@CAIRO_HAS_VG_SURFACE_TRUE@am__append_115 = cairo-vg.pc -@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_116 = $(cairo_egl_headers) -@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_117 = $(cairo_egl_private) -@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_118 = $(cairo_egl_cxx_sources) -@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_119 = $(cairo_egl_sources) -@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_120 = cairo-egl.pc -@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_121 = $(cairo_glx_headers) -@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_122 = $(cairo_glx_private) -@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_123 = $(cairo_glx_cxx_sources) -@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_124 = $(cairo_glx_sources) -@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_125 = cairo-glx.pc -@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_126 = $(cairo_wgl_headers) -@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_127 = $(cairo_wgl_private) -@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_128 = $(cairo_wgl_cxx_sources) -@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_129 = $(cairo_wgl_sources) -@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_130 = cairo-wgl.pc -@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_131 = $(cairo_script_headers) -@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_132 = $(cairo_script_private) -@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_133 = $(cairo_script_cxx_sources) -@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_134 = $(cairo_script_sources) -@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_135 = cairo-script.pc -@CAIRO_HAS_FT_FONT_TRUE@am__append_136 = $(cairo_ft_headers) -@CAIRO_HAS_FT_FONT_TRUE@am__append_137 = $(cairo_ft_private) -@CAIRO_HAS_FT_FONT_TRUE@am__append_138 = $(cairo_ft_cxx_sources) -@CAIRO_HAS_FT_FONT_TRUE@am__append_139 = $(cairo_ft_sources) -@CAIRO_HAS_FT_FONT_TRUE@am__append_140 = cairo-ft.pc -@CAIRO_HAS_FC_FONT_TRUE@am__append_141 = $(cairo_fc_headers) -@CAIRO_HAS_FC_FONT_TRUE@am__append_142 = $(cairo_fc_private) -@CAIRO_HAS_FC_FONT_TRUE@am__append_143 = $(cairo_fc_cxx_sources) -@CAIRO_HAS_FC_FONT_TRUE@am__append_144 = $(cairo_fc_sources) -@CAIRO_HAS_FC_FONT_TRUE@am__append_145 = cairo-fc.pc -@CAIRO_HAS_PS_SURFACE_TRUE@am__append_146 = $(cairo_ps_headers) -@CAIRO_HAS_PS_SURFACE_TRUE@am__append_147 = $(cairo_ps_private) -@CAIRO_HAS_PS_SURFACE_TRUE@am__append_148 = $(cairo_ps_cxx_sources) -@CAIRO_HAS_PS_SURFACE_TRUE@am__append_149 = $(cairo_ps_sources) -@CAIRO_HAS_PS_SURFACE_TRUE@am__append_150 = cairo-ps.pc -@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_151 = $(cairo_pdf_headers) -@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_152 = $(cairo_pdf_private) -@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_153 = $(cairo_pdf_cxx_sources) -@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_154 = $(cairo_pdf_sources) -@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_155 = cairo-pdf.pc -@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_156 = $(cairo_svg_headers) -@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_157 = $(cairo_svg_private) -@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_158 = $(cairo_svg_cxx_sources) -@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_159 = $(cairo_svg_sources) -@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_160 = cairo-svg.pc -@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_161 = $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers) -@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_162 = $(cairo_test_surfaces_cxx_sources) -@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_163 = $(cairo_test_surfaces_sources) -@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_164 = $(cairo_tee_headers) -@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_165 = $(cairo_tee_private) -@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_166 = $(cairo_tee_cxx_sources) -@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_167 = $(cairo_tee_sources) -@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_168 = cairo-tee.pc -@CAIRO_HAS_XML_SURFACE_TRUE@am__append_169 = $(cairo_xml_headers) -@CAIRO_HAS_XML_SURFACE_TRUE@am__append_170 = $(cairo_xml_private) -@CAIRO_HAS_XML_SURFACE_TRUE@am__append_171 = $(cairo_xml_cxx_sources) -@CAIRO_HAS_XML_SURFACE_TRUE@am__append_172 = $(cairo_xml_sources) -@CAIRO_HAS_XML_SURFACE_TRUE@am__append_173 = cairo-xml.pc -@CAIRO_HAS_PTHREAD_TRUE@am__append_174 = $(cairo_pthread_private) $(cairo_pthread_headers) -@CAIRO_HAS_PTHREAD_TRUE@am__append_175 = $(cairo_pthread_cxx_sources) -@CAIRO_HAS_PTHREAD_TRUE@am__append_176 = $(cairo_pthread_sources) -@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_177 = $(cairo_gobject_headers) -@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_178 = $(cairo_gobject_private) -@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_179 = $(cairo_gobject_cxx_sources) -@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_180 = $(cairo_gobject_sources) -@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_181 = cairo-gobject.pc -@CAIRO_HAS_TRACE_TRUE@am__append_182 = $(cairo_trace_private) $(cairo_trace_headers) -@CAIRO_HAS_TRACE_TRUE@am__append_183 = $(cairo_trace_cxx_sources) -@CAIRO_HAS_TRACE_TRUE@am__append_184 = $(cairo_trace_sources) -@CAIRO_HAS_INTERPRETER_TRUE@am__append_185 = $(cairo_interpreter_private) $(cairo_interpreter_headers) -@CAIRO_HAS_INTERPRETER_TRUE@am__append_186 = $(cairo_interpreter_cxx_sources) -@CAIRO_HAS_INTERPRETER_TRUE@am__append_187 = $(cairo_interpreter_sources) -@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_188 = $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers) -@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_189 = $(cairo_symbol_lookup_cxx_sources) -@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_190 = $(cairo_symbol_lookup_sources) -@ENABLE_GTK_DOC_TRUE@am__append_191 = check-doc-coverage.sh +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_56 = $(cairo_os2_headers) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_57 = $(cairo_os2_private) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_58 = $(cairo_os2_cxx_sources) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_59 = $(cairo_os2_sources) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_60 = cairo-os2.pc +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_61 = $(cairo_beos_headers) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_62 = $(cairo_beos_private) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_63 = $(cairo_beos_cxx_sources) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_64 = $(cairo_beos_sources) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_65 = cairo-beos.pc +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_66 = $(cairo_drm_headers) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_67 = $(cairo_drm_private) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_68 = $(cairo_drm_cxx_sources) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_69 = $(cairo_drm_sources) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_70 = cairo-drm.pc +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_71 = $(cairo_gallium_headers) +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_72 = $(cairo_gallium_private) +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_73 = $(cairo_gallium_cxx_sources) +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_74 = $(cairo_gallium_sources) +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_75 = cairo-gallium.pc +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_76 = $(cairo_png_headers) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_77 = $(cairo_png_private) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_78 = $(cairo_png_cxx_sources) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_79 = $(cairo_png_sources) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_80 = cairo-png.pc +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_81 = $(cairo_gl_headers) +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_82 = $(cairo_gl_private) +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_83 = $(cairo_gl_cxx_sources) +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_84 = $(cairo_gl_sources) +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_85 = cairo-gl.pc +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_86 = $(cairo_glesv2_headers) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_87 = $(cairo_glesv2_private) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_88 = $(cairo_glesv2_cxx_sources) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_89 = $(cairo_glesv2_sources) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_90 = cairo-glesv2.pc +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_91 = $(cairo_glesv3_headers) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_92 = $(cairo_glesv3_private) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_93 = $(cairo_glesv3_cxx_sources) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_94 = $(cairo_glesv3_sources) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_95 = cairo-glesv3.pc +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_96 = $(cairo_cogl_headers) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_97 = $(cairo_cogl_private) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_98 = $(cairo_cogl_cxx_sources) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_99 = $(cairo_cogl_sources) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_100 = cairo-cogl.pc +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_101 = $(cairo_directfb_headers) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_102 = $(cairo_directfb_private) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_103 = $(cairo_directfb_cxx_sources) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_104 = $(cairo_directfb_sources) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_105 = cairo-directfb.pc +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_106 = $(cairo_vg_headers) +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_107 = $(cairo_vg_private) +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_108 = $(cairo_vg_cxx_sources) +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_109 = $(cairo_vg_sources) +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_110 = cairo-vg.pc +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_111 = $(cairo_egl_headers) +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_112 = $(cairo_egl_private) +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_113 = $(cairo_egl_cxx_sources) +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_114 = $(cairo_egl_sources) +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_115 = cairo-egl.pc +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_116 = $(cairo_glx_headers) +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_117 = $(cairo_glx_private) +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_118 = $(cairo_glx_cxx_sources) +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_119 = $(cairo_glx_sources) +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_120 = cairo-glx.pc +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_121 = $(cairo_wgl_headers) +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_122 = $(cairo_wgl_private) +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_123 = $(cairo_wgl_cxx_sources) +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_124 = $(cairo_wgl_sources) +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_125 = cairo-wgl.pc +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_126 = $(cairo_script_headers) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_127 = $(cairo_script_private) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_128 = $(cairo_script_cxx_sources) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_129 = $(cairo_script_sources) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_130 = cairo-script.pc +@CAIRO_HAS_FT_FONT_TRUE@am__append_131 = $(cairo_ft_headers) +@CAIRO_HAS_FT_FONT_TRUE@am__append_132 = $(cairo_ft_private) +@CAIRO_HAS_FT_FONT_TRUE@am__append_133 = $(cairo_ft_cxx_sources) +@CAIRO_HAS_FT_FONT_TRUE@am__append_134 = $(cairo_ft_sources) +@CAIRO_HAS_FT_FONT_TRUE@am__append_135 = cairo-ft.pc +@CAIRO_HAS_FC_FONT_TRUE@am__append_136 = $(cairo_fc_headers) +@CAIRO_HAS_FC_FONT_TRUE@am__append_137 = $(cairo_fc_private) +@CAIRO_HAS_FC_FONT_TRUE@am__append_138 = $(cairo_fc_cxx_sources) +@CAIRO_HAS_FC_FONT_TRUE@am__append_139 = $(cairo_fc_sources) +@CAIRO_HAS_FC_FONT_TRUE@am__append_140 = cairo-fc.pc +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_141 = $(cairo_ps_headers) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_142 = $(cairo_ps_private) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_143 = $(cairo_ps_cxx_sources) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_144 = $(cairo_ps_sources) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_145 = cairo-ps.pc +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_146 = $(cairo_pdf_headers) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_147 = $(cairo_pdf_private) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_148 = $(cairo_pdf_cxx_sources) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_149 = $(cairo_pdf_sources) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_150 = cairo-pdf.pc +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_151 = $(cairo_svg_headers) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_152 = $(cairo_svg_private) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_153 = $(cairo_svg_cxx_sources) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_154 = $(cairo_svg_sources) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_155 = cairo-svg.pc +@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_156 = $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers) +@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_157 = $(cairo_test_surfaces_cxx_sources) +@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_158 = $(cairo_test_surfaces_sources) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_159 = $(cairo_tee_headers) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_160 = $(cairo_tee_private) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_161 = $(cairo_tee_cxx_sources) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_162 = $(cairo_tee_sources) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_163 = cairo-tee.pc +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_164 = $(cairo_xml_headers) +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_165 = $(cairo_xml_private) +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_166 = $(cairo_xml_cxx_sources) +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_167 = $(cairo_xml_sources) +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_168 = cairo-xml.pc +@CAIRO_HAS_PTHREAD_TRUE@am__append_169 = $(cairo_pthread_private) $(cairo_pthread_headers) +@CAIRO_HAS_PTHREAD_TRUE@am__append_170 = $(cairo_pthread_cxx_sources) +@CAIRO_HAS_PTHREAD_TRUE@am__append_171 = $(cairo_pthread_sources) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_172 = $(cairo_gobject_headers) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_173 = $(cairo_gobject_private) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_174 = $(cairo_gobject_cxx_sources) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_175 = $(cairo_gobject_sources) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_176 = cairo-gobject.pc +@CAIRO_HAS_TRACE_TRUE@am__append_177 = $(cairo_trace_private) $(cairo_trace_headers) +@CAIRO_HAS_TRACE_TRUE@am__append_178 = $(cairo_trace_cxx_sources) +@CAIRO_HAS_TRACE_TRUE@am__append_179 = $(cairo_trace_sources) +@CAIRO_HAS_INTERPRETER_TRUE@am__append_180 = $(cairo_interpreter_private) $(cairo_interpreter_headers) +@CAIRO_HAS_INTERPRETER_TRUE@am__append_181 = $(cairo_interpreter_cxx_sources) +@CAIRO_HAS_INTERPRETER_TRUE@am__append_182 = $(cairo_interpreter_sources) +@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_183 = $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers) +@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_184 = $(cairo_symbol_lookup_cxx_sources) +@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_185 = $(cairo_symbol_lookup_sources) +@ENABLE_GTK_DOC_TRUE@am__append_186 = check-doc-coverage.sh subdir = doc/public ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/aclocal.cairo.m4 \ @@ -817,7 +812,6 @@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shm_LIBS = @shm_LIBS@ -skia_DIR = @skia_DIR@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -844,7 +838,7 @@ EXTRA_DIST = $(content_files) $(HTML_IMAGES) $(DOC_MAIN_SGML_FILE) \ check-doc-coverage.sh check-doc-syntax.sh EXTRA_LTLIBRARIES = MAINTAINERCLEANFILES = Makefile.in -TESTS = $(am__append_191) check-doc-syntax.sh +TESTS = $(am__append_186) check-doc-syntax.sh cairo_headers = cairo.h cairo-deprecated.h cairo_private = cairoint.h cairo-analysis-surface-private.h \ cairo-arc-private.h cairo-array-private.h \ @@ -852,89 +846,88 @@ cairo_private = cairoint.h cairo-analysis-surface-private.h \ cairo-box-inline.h cairo-boxes-private.h cairo-cache-private.h \ cairo-clip-inline.h cairo-clip-private.h \ cairo-combsort-inline.h cairo-compiler-private.h \ + cairo-composite-rectangles-private.h \ cairo-compositor-private.h cairo-contour-inline.h \ - cairo-contour-private.h cairo-composite-rectangles-private.h \ - cairo-damage-private.h cairo-default-context-private.h \ - cairo-device-private.h cairo-error-inline.h \ - cairo-error-private.h cairo-fixed-private.h \ - cairo-fixed-type-private.h cairo-freelist-private.h \ - cairo-freelist-type-private.h cairo-freed-pool-private.h \ - cairo-fontconfig-private.h cairo-gstate-private.h \ - cairo-hash-private.h cairo-image-info-private.h \ - cairo-image-surface-inline.h cairo-image-surface-private.h \ - cairo-line-inline.h cairo-line-private.h cairo-list-inline.h \ - cairo-list-private.h cairo-malloc-private.h \ - cairo-mempool-private.h cairo-mutex-impl-private.h \ - cairo-mutex-list-private.h cairo-mutex-private.h \ - cairo-mutex-type-private.h cairo-output-stream-private.h \ - cairo-paginated-private.h cairo-paginated-surface-private.h \ - cairo-path-fixed-private.h cairo-path-private.h \ - cairo-pattern-inline.h cairo-pattern-private.h \ - cairo-pixman-private.h cairo-private.h \ + cairo-contour-private.h cairo-damage-private.h \ + cairo-default-context-private.h cairo-device-private.h \ + cairo-error-inline.h cairo-error-private.h \ + cairo-fixed-private.h cairo-fixed-type-private.h \ + cairo-fontconfig-private.h cairo-freed-pool-private.h \ + cairo-freelist-private.h cairo-freelist-type-private.h \ + cairo-gstate-private.h cairo-hash-private.h \ + cairo-image-info-private.h cairo-image-surface-inline.h \ + cairo-image-surface-private.h cairo-line-inline.h \ + cairo-line-private.h cairo-list-inline.h cairo-list-private.h \ + cairo-malloc-private.h cairo-mempool-private.h \ + cairo-mutex-impl-private.h cairo-mutex-list-private.h \ + cairo-mutex-private.h cairo-mutex-type-private.h \ + cairo-output-stream-private.h cairo-paginated-private.h \ + cairo-paginated-surface-private.h cairo-path-fixed-private.h \ + cairo-path-private.h cairo-pattern-inline.h \ + cairo-pattern-private.h cairo-pixman-private.h cairo-private.h \ cairo-recording-surface-inline.h \ cairo-recording-surface-private.h \ cairo-reference-count-private.h cairo-region-private.h \ cairo-rtree-private.h cairo-scaled-font-private.h \ - cairo-slope-private.h cairo-spans-private.h \ - cairo-spans-compositor-private.h cairo-stroke-dash-private.h \ - cairo-surface-inline.h cairo-surface-private.h \ + cairo-slope-private.h cairo-spans-compositor-private.h \ + cairo-spans-private.h cairo-stroke-dash-private.h \ cairo-surface-backend-private.h \ cairo-surface-clipper-private.h \ - cairo-surface-fallback-private.h \ + cairo-surface-fallback-private.h cairo-surface-inline.h \ cairo-surface-observer-inline.h \ cairo-surface-observer-private.h \ - cairo-surface-offset-private.h \ - cairo-surface-subsurface-inline.h \ - cairo-surface-subsurface-private.h \ + cairo-surface-offset-private.h cairo-surface-private.h \ cairo-surface-snapshot-inline.h \ cairo-surface-snapshot-private.h \ + cairo-surface-subsurface-inline.h \ + cairo-surface-subsurface-private.h \ cairo-surface-wrapper-private.h cairo-time-private.h \ - cairo-types-private.h cairo-traps-private.h \ - cairo-tristrip-private.h cairo-user-font-private.h \ + cairo-traps-private.h cairo-tristrip-private.h \ + cairo-types-private.h cairo-user-font-private.h \ cairo-wideint-private.h cairo-wideint-type-private.h $(NULL) \ $(_cairo_font_subset_private) $(_cairo_pdf_operators_private) cairo_sources = cairo-analysis-surface.c cairo-arc.c cairo-array.c \ cairo-atomic.c cairo-base64-stream.c cairo-base85-stream.c \ - cairo-bentley-ottmann.c cairo-bentley-ottmann-rectangular.c \ - cairo-bentley-ottmann-rectilinear.c \ - cairo-botor-scan-converter.c cairo-boxes.c \ - cairo-boxes-intersect.c cairo.c cairo-cache.c cairo-clip.c \ - cairo-clip-boxes.c cairo-clip-polygon.c cairo-clip-region.c \ - cairo-clip-surface.c cairo-color.c \ + cairo-bentley-ottmann-rectangular.c \ + cairo-bentley-ottmann-rectilinear.c cairo-bentley-ottmann.c \ + cairo-botor-scan-converter.c cairo-boxes-intersect.c \ + cairo-boxes.c cairo-cache.c cairo-clip-boxes.c \ + cairo-clip-polygon.c cairo-clip-region.c cairo-clip-surface.c \ + cairo-clip-tor-scan-converter.c cairo-clip.c cairo-color.c \ cairo-composite-rectangles.c cairo-compositor.c \ cairo-contour.c cairo-damage.c cairo-debug.c \ cairo-default-context.c cairo-device.c cairo-error.c \ - cairo-fallback-compositor.c cairo-fixed.c cairo-font-face.c \ - cairo-font-face-twin.c cairo-font-face-twin-data.c \ - cairo-font-options.c cairo-freelist.c cairo-freed-pool.c \ - cairo-gstate.c cairo-hash.c cairo-hull.c \ + cairo-fallback-compositor.c cairo-fixed.c \ + cairo-font-face-twin-data.c cairo-font-face-twin.c \ + cairo-font-face.c cairo-font-options.c cairo-freed-pool.c \ + cairo-freelist.c cairo-gstate.c cairo-hash.c cairo-hull.c \ cairo-image-compositor.c cairo-image-info.c \ cairo-image-source.c cairo-image-surface.c cairo-line.c \ - cairo-lzw.c cairo-matrix.c cairo-mask-compositor.c \ - cairo-mesh-pattern-rasterizer.c cairo-mempool.c cairo-misc.c \ + cairo-lzw.c cairo-mask-compositor.c cairo-matrix.c \ + cairo-mempool.c cairo-mesh-pattern-rasterizer.c cairo-misc.c \ cairo-mono-scan-converter.c cairo-mutex.c \ cairo-no-compositor.c cairo-observer.c cairo-output-stream.c \ - cairo-paginated-surface.c cairo-path-bounds.c cairo-path.c \ + cairo-paginated-surface.c cairo-path-bounds.c \ cairo-path-fill.c cairo-path-fixed.c cairo-path-in-fill.c \ - cairo-path-stroke.c cairo-path-stroke-boxes.c \ - cairo-path-stroke-polygon.c cairo-path-stroke-traps.c \ - cairo-path-stroke-tristrip.c cairo-pattern.c cairo-pen.c \ - cairo-polygon.c cairo-polygon-intersect.c \ - cairo-polygon-reduce.c cairo-raster-source-pattern.c \ + cairo-path-stroke-boxes.c cairo-path-stroke-polygon.c \ + cairo-path-stroke-traps.c cairo-path-stroke-tristrip.c \ + cairo-path-stroke.c cairo-path.c cairo-pattern.c cairo-pen.c \ + cairo-polygon-intersect.c cairo-polygon-reduce.c \ + cairo-polygon.c cairo-raster-source-pattern.c \ cairo-recording-surface.c cairo-rectangle.c \ cairo-rectangular-scan-converter.c cairo-region.c \ cairo-rtree.c cairo-scaled-font.c \ - cairo-shape-mask-compositor.c cairo-slope.c cairo-spans.c \ - cairo-spans-compositor.c cairo-spline.c cairo-stroke-dash.c \ - cairo-stroke-style.c cairo-surface.c cairo-surface-clipper.c \ - cairo-surface-fallback.c cairo-surface-observer.c \ - cairo-surface-offset.c cairo-surface-snapshot.c \ - cairo-surface-subsurface.c cairo-surface-wrapper.c \ - cairo-time.c cairo-tor-scan-converter.c \ - cairo-tor22-scan-converter.c cairo-clip-tor-scan-converter.c \ - cairo-toy-font-face.c cairo-traps.c cairo-tristrip.c \ - cairo-traps-compositor.c cairo-unicode.c cairo-user-font.c \ - cairo-version.c cairo-wideint.c $(NULL) \ + cairo-shape-mask-compositor.c cairo-slope.c \ + cairo-spans-compositor.c cairo-spans.c cairo-spline.c \ + cairo-stroke-dash.c cairo-stroke-style.c \ + cairo-surface-clipper.c cairo-surface-fallback.c \ + cairo-surface-observer.c cairo-surface-offset.c \ + cairo-surface-snapshot.c cairo-surface-subsurface.c \ + cairo-surface-wrapper.c cairo-surface.c cairo-time.c \ + cairo-tor-scan-converter.c cairo-tor22-scan-converter.c \ + cairo-toy-font-face.c cairo-traps-compositor.c cairo-traps.c \ + cairo-tristrip.c cairo-unicode.c cairo-user-font.c \ + cairo-version.c cairo-wideint.c cairo.c $(NULL) \ $(_cairo_font_subset_sources) $(_cairo_pdf_operators_sources) \ $(_cairo_deflate_stream_sources) _cairo_font_subset_private = \ @@ -1086,13 +1079,13 @@ cairo_gl_sources = cairo-gl-composite.c \ cairo-gl-glyphs.c \ cairo-gl-gradient.c \ cairo-gl-info.c \ + cairo-gl-msaa-compositor.c \ cairo-gl-operand.c \ cairo-gl-shaders.c \ - cairo-gl-msaa-compositor.c \ - cairo-gl-spans-compositor.c \ - cairo-gl-traps-compositor.c \ cairo-gl-source.c \ - cairo-gl-surface.c + cairo-gl-spans-compositor.c \ + cairo-gl-surface.c \ + cairo-gl-traps-compositor.c cairo_glesv2_headers = $(cairo_gl_headers) cairo_glesv2_private = $(cairo_gl_private) @@ -1170,80 +1163,78 @@ supported_cairo_headers = $(cairo_headers) $(cairo_xlib_headers) \ $(cairo_gobject_headers) unsupported_cairo_headers = $(cairo_xlib_xcb_headers) \ $(cairo_qt_headers) $(cairo_quartz_image_headers) \ - $(cairo_skia_headers) $(cairo_os2_headers) \ - $(cairo_beos_headers) $(cairo_drm_headers) \ - $(cairo_gallium_headers) $(cairo_gl_headers) \ - $(cairo_glesv2_headers) $(cairo_glesv3_headers) \ - $(cairo_cogl_headers) $(cairo_directfb_headers) \ - $(cairo_vg_headers) $(cairo_tee_headers) $(cairo_xml_headers) + $(cairo_os2_headers) $(cairo_beos_headers) \ + $(cairo_drm_headers) $(cairo_gallium_headers) \ + $(cairo_gl_headers) $(cairo_glesv2_headers) \ + $(cairo_glesv3_headers) $(cairo_cogl_headers) \ + $(cairo_directfb_headers) $(cairo_vg_headers) \ + $(cairo_tee_headers) $(cairo_xml_headers) all_cairo_headers = $(cairo_headers) $(cairo_xlib_headers) \ $(cairo_xlib_xrender_headers) $(cairo_xcb_headers) \ $(cairo_xlib_xcb_headers) $(cairo_xcb_shm_headers) \ $(cairo_qt_headers) $(cairo_quartz_headers) \ $(cairo_quartz_font_headers) $(cairo_quartz_image_headers) \ $(cairo_win32_headers) $(cairo_win32_font_headers) \ - $(cairo_skia_headers) $(cairo_os2_headers) \ - $(cairo_beos_headers) $(cairo_drm_headers) \ - $(cairo_gallium_headers) $(cairo_png_headers) \ - $(cairo_gl_headers) $(cairo_glesv2_headers) \ - $(cairo_glesv3_headers) $(cairo_cogl_headers) \ - $(cairo_directfb_headers) $(cairo_vg_headers) \ - $(cairo_egl_headers) $(cairo_glx_headers) $(cairo_wgl_headers) \ - $(cairo_script_headers) $(cairo_ft_headers) \ - $(cairo_fc_headers) $(cairo_ps_headers) $(cairo_pdf_headers) \ - $(cairo_svg_headers) $(cairo_image_headers) \ - $(cairo_mime_headers) $(cairo_recording_headers) \ - $(cairo_observer_headers) $(cairo_tee_headers) \ - $(cairo_xml_headers) $(cairo_user_headers) \ - $(cairo_gobject_headers) + $(cairo_os2_headers) $(cairo_beos_headers) \ + $(cairo_drm_headers) $(cairo_gallium_headers) \ + $(cairo_png_headers) $(cairo_gl_headers) \ + $(cairo_glesv2_headers) $(cairo_glesv3_headers) \ + $(cairo_cogl_headers) $(cairo_directfb_headers) \ + $(cairo_vg_headers) $(cairo_egl_headers) $(cairo_glx_headers) \ + $(cairo_wgl_headers) $(cairo_script_headers) \ + $(cairo_ft_headers) $(cairo_fc_headers) $(cairo_ps_headers) \ + $(cairo_pdf_headers) $(cairo_svg_headers) \ + $(cairo_image_headers) $(cairo_mime_headers) \ + $(cairo_recording_headers) $(cairo_observer_headers) \ + $(cairo_tee_headers) $(cairo_xml_headers) \ + $(cairo_user_headers) $(cairo_gobject_headers) all_cairo_private = $(cairo_private) $(cairo_xlib_private) \ $(cairo_xlib_xrender_private) $(cairo_xcb_private) \ $(cairo_xlib_xcb_private) $(cairo_xcb_shm_private) \ $(cairo_qt_private) $(cairo_quartz_private) \ $(cairo_quartz_font_private) $(cairo_quartz_image_private) \ $(cairo_win32_private) $(cairo_win32_font_private) \ - $(cairo_skia_private) $(cairo_os2_private) \ - $(cairo_beos_private) $(cairo_drm_private) \ - $(cairo_gallium_private) $(cairo_png_private) \ - $(cairo_gl_private) $(cairo_glesv2_private) \ - $(cairo_glesv3_private) $(cairo_cogl_private) \ - $(cairo_directfb_private) $(cairo_vg_private) \ - $(cairo_egl_private) $(cairo_glx_private) $(cairo_wgl_private) \ - $(cairo_script_private) $(cairo_ft_private) \ - $(cairo_fc_private) $(cairo_ps_private) $(cairo_pdf_private) \ - $(cairo_svg_private) $(cairo_test_surfaces_private) \ - $(cairo_test_surfaces_headers) $(cairo_image_private) \ - $(cairo_mime_private) $(cairo_recording_private) \ - $(cairo_observer_private) $(cairo_tee_private) \ - $(cairo_xml_private) $(cairo_user_private) \ - $(cairo_pthread_private) $(cairo_pthread_headers) \ - $(cairo_gobject_private) $(cairo_trace_private) \ - $(cairo_trace_headers) $(cairo_interpreter_private) \ - $(cairo_interpreter_headers) $(cairo_symbol_lookup_private) \ - $(cairo_symbol_lookup_headers) + $(cairo_os2_private) $(cairo_beos_private) \ + $(cairo_drm_private) $(cairo_gallium_private) \ + $(cairo_png_private) $(cairo_gl_private) \ + $(cairo_glesv2_private) $(cairo_glesv3_private) \ + $(cairo_cogl_private) $(cairo_directfb_private) \ + $(cairo_vg_private) $(cairo_egl_private) $(cairo_glx_private) \ + $(cairo_wgl_private) $(cairo_script_private) \ + $(cairo_ft_private) $(cairo_fc_private) $(cairo_ps_private) \ + $(cairo_pdf_private) $(cairo_svg_private) \ + $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers) \ + $(cairo_image_private) $(cairo_mime_private) \ + $(cairo_recording_private) $(cairo_observer_private) \ + $(cairo_tee_private) $(cairo_xml_private) \ + $(cairo_user_private) $(cairo_pthread_private) \ + $(cairo_pthread_headers) $(cairo_gobject_private) \ + $(cairo_trace_private) $(cairo_trace_headers) \ + $(cairo_interpreter_private) $(cairo_interpreter_headers) \ + $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers) all_cairo_cxx_sources = $(cairo_cxx_sources) $(cairo_xlib_cxx_sources) \ $(cairo_xlib_xrender_cxx_sources) $(cairo_xcb_cxx_sources) \ $(cairo_xlib_xcb_cxx_sources) $(cairo_xcb_shm_cxx_sources) \ $(cairo_qt_cxx_sources) $(cairo_quartz_cxx_sources) \ $(cairo_quartz_font_cxx_sources) \ $(cairo_quartz_image_cxx_sources) $(cairo_win32_cxx_sources) \ - $(cairo_win32_font_cxx_sources) $(cairo_skia_cxx_sources) \ - $(cairo_os2_cxx_sources) $(cairo_beos_cxx_sources) \ - $(cairo_drm_cxx_sources) $(cairo_gallium_cxx_sources) \ - $(cairo_png_cxx_sources) $(cairo_gl_cxx_sources) \ - $(cairo_glesv2_cxx_sources) $(cairo_glesv3_cxx_sources) \ - $(cairo_cogl_cxx_sources) $(cairo_directfb_cxx_sources) \ - $(cairo_vg_cxx_sources) $(cairo_egl_cxx_sources) \ - $(cairo_glx_cxx_sources) $(cairo_wgl_cxx_sources) \ - $(cairo_script_cxx_sources) $(cairo_ft_cxx_sources) \ - $(cairo_fc_cxx_sources) $(cairo_ps_cxx_sources) \ - $(cairo_pdf_cxx_sources) $(cairo_svg_cxx_sources) \ - $(cairo_test_surfaces_cxx_sources) $(cairo_image_cxx_sources) \ - $(cairo_mime_cxx_sources) $(cairo_recording_cxx_sources) \ - $(cairo_observer_cxx_sources) $(cairo_tee_cxx_sources) \ - $(cairo_xml_cxx_sources) $(cairo_user_cxx_sources) \ - $(cairo_pthread_cxx_sources) $(cairo_gobject_cxx_sources) \ - $(cairo_trace_cxx_sources) $(cairo_interpreter_cxx_sources) \ + $(cairo_win32_font_cxx_sources) $(cairo_os2_cxx_sources) \ + $(cairo_beos_cxx_sources) $(cairo_drm_cxx_sources) \ + $(cairo_gallium_cxx_sources) $(cairo_png_cxx_sources) \ + $(cairo_gl_cxx_sources) $(cairo_glesv2_cxx_sources) \ + $(cairo_glesv3_cxx_sources) $(cairo_cogl_cxx_sources) \ + $(cairo_directfb_cxx_sources) $(cairo_vg_cxx_sources) \ + $(cairo_egl_cxx_sources) $(cairo_glx_cxx_sources) \ + $(cairo_wgl_cxx_sources) $(cairo_script_cxx_sources) \ + $(cairo_ft_cxx_sources) $(cairo_fc_cxx_sources) \ + $(cairo_ps_cxx_sources) $(cairo_pdf_cxx_sources) \ + $(cairo_svg_cxx_sources) $(cairo_test_surfaces_cxx_sources) \ + $(cairo_image_cxx_sources) $(cairo_mime_cxx_sources) \ + $(cairo_recording_cxx_sources) $(cairo_observer_cxx_sources) \ + $(cairo_tee_cxx_sources) $(cairo_xml_cxx_sources) \ + $(cairo_user_cxx_sources) $(cairo_pthread_cxx_sources) \ + $(cairo_gobject_cxx_sources) $(cairo_trace_cxx_sources) \ + $(cairo_interpreter_cxx_sources) \ $(cairo_symbol_lookup_cxx_sources) all_cairo_sources = $(cairo_sources) $(cairo_xlib_sources) \ $(cairo_xlib_xrender_sources) $(cairo_xcb_sources) \ @@ -1251,22 +1242,22 @@ all_cairo_sources = $(cairo_sources) $(cairo_xlib_sources) \ $(cairo_qt_sources) $(cairo_quartz_sources) \ $(cairo_quartz_font_sources) $(cairo_quartz_image_sources) \ $(cairo_win32_sources) $(cairo_win32_font_sources) \ - $(cairo_skia_sources) $(cairo_os2_sources) \ - $(cairo_beos_sources) $(cairo_drm_sources) \ - $(cairo_gallium_sources) $(cairo_png_sources) \ - $(cairo_gl_sources) $(cairo_glesv2_sources) \ - $(cairo_glesv3_sources) $(cairo_cogl_sources) \ - $(cairo_directfb_sources) $(cairo_vg_sources) \ - $(cairo_egl_sources) $(cairo_glx_sources) $(cairo_wgl_sources) \ - $(cairo_script_sources) $(cairo_ft_sources) \ - $(cairo_fc_sources) $(cairo_ps_sources) $(cairo_pdf_sources) \ - $(cairo_svg_sources) $(cairo_test_surfaces_sources) \ - $(cairo_image_sources) $(cairo_mime_sources) \ - $(cairo_recording_sources) $(cairo_observer_sources) \ - $(cairo_tee_sources) $(cairo_xml_sources) \ - $(cairo_user_sources) $(cairo_pthread_sources) \ - $(cairo_gobject_sources) $(cairo_trace_sources) \ - $(cairo_interpreter_sources) $(cairo_symbol_lookup_sources) + $(cairo_os2_sources) $(cairo_beos_sources) \ + $(cairo_drm_sources) $(cairo_gallium_sources) \ + $(cairo_png_sources) $(cairo_gl_sources) \ + $(cairo_glesv2_sources) $(cairo_glesv3_sources) \ + $(cairo_cogl_sources) $(cairo_directfb_sources) \ + $(cairo_vg_sources) $(cairo_egl_sources) $(cairo_glx_sources) \ + $(cairo_wgl_sources) $(cairo_script_sources) \ + $(cairo_ft_sources) $(cairo_fc_sources) $(cairo_ps_sources) \ + $(cairo_pdf_sources) $(cairo_svg_sources) \ + $(cairo_test_surfaces_sources) $(cairo_image_sources) \ + $(cairo_mime_sources) $(cairo_recording_sources) \ + $(cairo_observer_sources) $(cairo_tee_sources) \ + $(cairo_xml_sources) $(cairo_user_sources) \ + $(cairo_pthread_sources) $(cairo_gobject_sources) \ + $(cairo_trace_sources) $(cairo_interpreter_sources) \ + $(cairo_symbol_lookup_sources) enabled_cairo_headers = $(cairo_headers) $(am__append_1) \ $(am__append_6) $(am__append_11) $(am__append_16) \ $(am__append_21) $(am__append_26) $(am__append_31) \ @@ -1278,10 +1269,10 @@ enabled_cairo_headers = $(cairo_headers) $(am__append_1) \ $(am__append_111) $(am__append_116) $(am__append_121) \ $(am__append_126) $(am__append_131) $(am__append_136) \ $(am__append_141) $(am__append_146) $(am__append_151) \ - $(am__append_156) $(cairo_image_headers) $(cairo_mime_headers) \ + $(cairo_image_headers) $(cairo_mime_headers) \ $(cairo_recording_headers) $(cairo_observer_headers) \ - $(am__append_164) $(am__append_169) $(cairo_user_headers) \ - $(am__append_177) + $(am__append_159) $(am__append_164) $(cairo_user_headers) \ + $(am__append_172) enabled_cairo_private = $(cairo_private) $(am__append_2) \ $(am__append_7) $(am__append_12) $(am__append_17) \ $(am__append_22) $(am__append_27) $(am__append_32) \ @@ -1293,11 +1284,11 @@ enabled_cairo_private = $(cairo_private) $(am__append_2) \ $(am__append_112) $(am__append_117) $(am__append_122) \ $(am__append_127) $(am__append_132) $(am__append_137) \ $(am__append_142) $(am__append_147) $(am__append_152) \ - $(am__append_157) $(am__append_161) $(cairo_image_private) \ - $(cairo_mime_private) $(cairo_recording_private) \ - $(cairo_observer_private) $(am__append_165) $(am__append_170) \ - $(cairo_user_private) $(am__append_174) $(am__append_178) \ - $(am__append_182) $(am__append_185) $(am__append_188) + $(am__append_156) $(cairo_image_private) $(cairo_mime_private) \ + $(cairo_recording_private) $(cairo_observer_private) \ + $(am__append_160) $(am__append_165) $(cairo_user_private) \ + $(am__append_169) $(am__append_173) $(am__append_177) \ + $(am__append_180) $(am__append_183) enabled_cairo_cxx_sources = $(cairo_cxx_sources) $(am__append_3) \ $(am__append_8) $(am__append_13) $(am__append_18) \ $(am__append_23) $(am__append_28) $(am__append_33) \ @@ -1309,12 +1300,12 @@ enabled_cairo_cxx_sources = $(cairo_cxx_sources) $(am__append_3) \ $(am__append_113) $(am__append_118) $(am__append_123) \ $(am__append_128) $(am__append_133) $(am__append_138) \ $(am__append_143) $(am__append_148) $(am__append_153) \ - $(am__append_158) $(am__append_162) $(cairo_image_cxx_sources) \ + $(am__append_157) $(cairo_image_cxx_sources) \ $(cairo_mime_cxx_sources) $(cairo_recording_cxx_sources) \ - $(cairo_observer_cxx_sources) $(am__append_166) \ - $(am__append_171) $(cairo_user_cxx_sources) $(am__append_175) \ - $(am__append_179) $(am__append_183) $(am__append_186) \ - $(am__append_189) + $(cairo_observer_cxx_sources) $(am__append_161) \ + $(am__append_166) $(cairo_user_cxx_sources) $(am__append_170) \ + $(am__append_174) $(am__append_178) $(am__append_181) \ + $(am__append_184) enabled_cairo_sources = $(cairo_sources) $(am__append_4) \ $(am__append_9) $(am__append_14) $(am__append_19) \ $(am__append_24) $(am__append_29) $(am__append_34) \ @@ -1326,17 +1317,17 @@ enabled_cairo_sources = $(cairo_sources) $(am__append_4) \ $(am__append_114) $(am__append_119) $(am__append_124) \ $(am__append_129) $(am__append_134) $(am__append_139) \ $(am__append_144) $(am__append_149) $(am__append_154) \ - $(am__append_159) $(am__append_163) $(cairo_image_sources) \ - $(cairo_mime_sources) $(cairo_recording_sources) \ - $(cairo_observer_sources) $(am__append_167) $(am__append_172) \ - $(cairo_user_sources) $(am__append_176) $(am__append_180) \ - $(am__append_184) $(am__append_187) $(am__append_190) + $(am__append_158) $(cairo_image_sources) $(cairo_mime_sources) \ + $(cairo_recording_sources) $(cairo_observer_sources) \ + $(am__append_162) $(am__append_167) $(cairo_user_sources) \ + $(am__append_171) $(am__append_175) $(am__append_179) \ + $(am__append_182) $(am__append_185) all_cairo_pkgconf = cairo.pc cairo-xlib.pc cairo-xlib-xrender.pc \ cairo-xcb.pc cairo-xlib-xcb.pc cairo-xcb-shm.pc cairo-qt.pc \ cairo-quartz.pc cairo-quartz-font.pc cairo-quartz-image.pc \ - cairo-win32.pc cairo-win32-font.pc cairo-skia.pc cairo-os2.pc \ - cairo-beos.pc cairo-drm.pc cairo-gallium.pc cairo-png.pc \ - cairo-gl.pc cairo-glesv2.pc cairo-glesv3.pc cairo-cogl.pc \ + cairo-win32.pc cairo-win32-font.pc cairo-os2.pc cairo-beos.pc \ + cairo-drm.pc cairo-gallium.pc cairo-png.pc cairo-gl.pc \ + cairo-glesv2.pc cairo-glesv3.pc cairo-cogl.pc \ cairo-directfb.pc cairo-vg.pc cairo-egl.pc cairo-glx.pc \ cairo-wgl.pc cairo-script.pc cairo-ft.pc cairo-fc.pc \ cairo-ps.pc cairo-pdf.pc cairo-svg.pc cairo-tee.pc \ @@ -1351,8 +1342,8 @@ enabled_cairo_pkgconf = cairo.pc $(am__append_5) $(am__append_10) \ $(am__append_105) $(am__append_110) $(am__append_115) \ $(am__append_120) $(am__append_125) $(am__append_130) \ $(am__append_135) $(am__append_140) $(am__append_145) \ - $(am__append_150) $(am__append_155) $(am__append_160) \ - $(am__append_168) $(am__append_173) $(am__append_181) + $(am__append_150) $(am__append_155) $(am__append_163) \ + $(am__append_168) $(am__append_176) # The name of the module. DOC_MODULE = cairo diff --git a/WebKitLibraries/cairo/doc/public/html/cairo-FreeType-Fonts.html b/WebKitLibraries/cairo/doc/public/html/cairo-FreeType-Fonts.html index 14461fe12..f842c9da8 100644 --- a/WebKitLibraries/cairo/doc/public/html/cairo-FreeType-Fonts.html +++ b/WebKitLibraries/cairo/doc/public/html/cairo-FreeType-Fonts.html @@ -301,7 +301,8 @@

F
FT_Face
 cairo_ft_scaled_font_lock_face (cairo_scaled_font_t *scaled_font);

cairo_ft_scaled_font_lock_face() gets the FT_Face object from a FreeType -backend font and scales it appropriately for the font. You must +backend font and scales it appropriately for the font and applies OpenType +font variations if applicable. You must release the face with cairo_ft_scaled_font_unlock_face() when you are done using it. Since the FT_Face object can be shared between multiple cairo_scaled_font_t objects, you must not diff --git a/WebKitLibraries/cairo/doc/public/html/cairo-Image-Surfaces.html b/WebKitLibraries/cairo/doc/public/html/cairo-Image-Surfaces.html index 68b7ac939..af13c99e2 100644 --- a/WebKitLibraries/cairo/doc/public/html/cairo-Image-Surfaces.html +++ b/WebKitLibraries/cairo/doc/public/html/cairo-Image-Surfaces.html @@ -528,7 +528,7 @@

I

each pixel is a 1-bit quantity holding an alpha value. Pixels are packed together into 32-bit quantities. The ordering of the bits matches the - endianess of the platform. On a big-endian machine, the + endianness of the platform. On a big-endian machine, the first pixel is in the uppermost bit, on a little-endian machine the first pixel is in the least-significant bit. (Since 1.0)

diff --git a/WebKitLibraries/cairo/doc/public/html/cairo-SVG-Surfaces.html b/WebKitLibraries/cairo/doc/public/html/cairo-SVG-Surfaces.html index 95997b506..9b6e922c8 100644 --- a/WebKitLibraries/cairo/doc/public/html/cairo-SVG-Surfaces.html +++ b/WebKitLibraries/cairo/doc/public/html/cairo-SVG-Surfaces.html @@ -347,35 +347,8 @@

SVG

enum cairo_svg_version_t

-

CAIRO_SVG_UNIT_USER -: User unit, a value in the current coordinate system. - If used in the root element for the initial coordinate systems it - corresponds to pixels. (Since 1.16) -CAIRO_SVG_UNIT_EM -: The size of the element's font. (Since 1.16) -CAIRO_SVG_UNIT_EX -: The x-height of the element’s font. (Since 1.16) -CAIRO_SVG_UNIT_PX -: Pixels (1px = 1/96th of 1in). (Since 1.16) -CAIRO_SVG_UNIT_IN -: Inches (1in = 2.54cm = 96px). (Since 1.16) -CAIRO_SVG_UNIT_CM -: Centimeters (1cm = 96px/2.54). (Since 1.16) -CAIRO_SVG_UNIT_MM -: Millimeters (1mm = 1/10th of 1cm). (Since 1.16) -CAIRO_SVG_UNIT_PT -: Points (1pt = 1/72th of 1in). (Since 1.16) -CAIRO_SVG_UNIT_PC -: Picas (1pc = 1/6th of 1in). (Since 1.16) -CAIRO_SVG_UNIT_PERCENT -: Percent, a value that is some fraction of another - reference value. (Since 1.16)

-

cairo_svg_unit_t is used to describe the units valid for coordinates and -lengths in the SVG specification.

-

See also: -https://www.w3.org/TR/SVG/coords.htmlUnits -https://www.w3.org/TR/SVG/types.htmlDataTypeLength -https://www.w3.org/TR/css-values-3/lengths

+

cairo_svg_version_t is used to describe the version number of the SVG +specification that a generated SVG file will conform to.

Members

@@ -387,18 +360,22 @@

SVG

- + - +

CAIRO_SVG_VERSION_1_1

  +

The version 1.1 of the SVG specification. (Since 1.2)

+
 

CAIRO_SVG_VERSION_1_2

  +

The version 1.2 of the SVG specification. (Since 1.2)

+
 
-

Since: 1.16

+

Since: 1.2

diff --git a/WebKitLibraries/cairo/doc/public/html/cairo-Tags-and-Links.html b/WebKitLibraries/cairo/doc/public/html/cairo-Tags-and-Links.html index efe7072bd..0ac1c7807 100644 --- a/WebKitLibraries/cairo/doc/public/html/cairo-Tags-and-Links.html +++ b/WebKitLibraries/cairo/doc/public/html/cairo-Tags-and-Links.html @@ -218,7 +218,7 @@

T no operations are enclosed, the y coordidate is 0.

internal : A boolean that if true, the destination name may be - ommitted from PDF where possible. In this case, links + omitted from PDF where possible. In this case, links refer directly to the page and position instead of via the named destination table. Note that if this destination is referenced by another PDF (see File Links), @@ -241,11 +241,11 @@

T

Document Structure (PDF)

The document structure tags provide a means of specifying structural information -such as headers, paragraphs, tables, and figures. The inclusion of structural information faciliates:

+such as headers, paragraphs, tables, and figures. The inclusion of structural information facilitates:

  • Extraction of text and graphics for copy and paste

  • Reflow of text and graphics in the viewer

  • -
  • Proccessing text eg searching and indexing

  • +
  • Processing text eg searching and indexing

  • Conversion to other formats

  • Accessability support

diff --git a/WebKitLibraries/cairo/doc/public/html/cairo-Version-Information.html b/WebKitLibraries/cairo/doc/public/html/cairo-Version-Information.html index a67a52abc..7927fe1f5 100644 --- a/WebKitLibraries/cairo/doc/public/html/cairo-Version-Information.html +++ b/WebKitLibraries/cairo/doc/public/html/cairo-Version-Information.html @@ -166,8 +166,8 @@

 Compile-time
 ------------
-CAIRO_VERSION_STRING    Human-readable
-CAIRO_VERSION           Encoded, suitable for comparison
+CAIRO_VERSION_STRING   Human-readable
+CAIRO_VERSION          Encoded, suitable for comparison
  
 Run-time
 --------
diff --git a/WebKitLibraries/cairo/doc/public/html/cairo.devhelp2 b/WebKitLibraries/cairo/doc/public/html/cairo.devhelp2
index aaffcc3d2..db4e1a9a3 100644
--- a/WebKitLibraries/cairo/doc/public/html/cairo.devhelp2
+++ b/WebKitLibraries/cairo/doc/public/html/cairo.devhelp2
@@ -498,7 +498,7 @@
     
     
     
-    
+    
     
     
     
diff --git a/WebKitLibraries/cairo/doc/public/html/index-1.10.html b/WebKitLibraries/cairo/doc/public/html/index-1.10.html
index c399ee71a..0841f056d 100644
--- a/WebKitLibraries/cairo/doc/public/html/index-1.10.html
+++ b/WebKitLibraries/cairo/doc/public/html/index-1.10.html
@@ -26,145 +26,145 @@
 

D

-
cairo_device_acquire, cairo_device_acquire () +
cairo_device_acquire, cairo_device_acquire ()
-
cairo_device_destroy, cairo_device_destroy () +
cairo_device_destroy, cairo_device_destroy ()
-
cairo_device_finish, cairo_device_finish () +
cairo_device_finish, cairo_device_finish ()
-
cairo_device_flush, cairo_device_flush () +
cairo_device_flush, cairo_device_flush ()
-
cairo_device_get_reference_count, cairo_device_get_reference_count () +
cairo_device_get_reference_count, cairo_device_get_reference_count ()
-
cairo_device_get_type, cairo_device_get_type () +
cairo_device_get_type, cairo_device_get_type ()
-
cairo_device_get_user_data, cairo_device_get_user_data () +
cairo_device_get_user_data, cairo_device_get_user_data ()
-
cairo_device_reference, cairo_device_reference () +
cairo_device_reference, cairo_device_reference ()
-
cairo_device_release, cairo_device_release () +
cairo_device_release, cairo_device_release ()
-
cairo_device_set_user_data, cairo_device_set_user_data () +
cairo_device_set_user_data, cairo_device_set_user_data ()
-
cairo_device_status, cairo_device_status () +
cairo_device_status, cairo_device_status ()
-
cairo_device_t, cairo_device_t +
cairo_device_t, cairo_device_t
-
cairo_device_type_t, enum cairo_device_type_t +
cairo_device_type_t, enum cairo_device_type_t

H

-
CAIRO_HAS_FC_FONT, CAIRO_HAS_FC_FONT +
CAIRO_HAS_FC_FONT, CAIRO_HAS_FC_FONT
-
CAIRO_HAS_RECORDING_SURFACE, CAIRO_HAS_RECORDING_SURFACE +
CAIRO_HAS_RECORDING_SURFACE, CAIRO_HAS_RECORDING_SURFACE

I

-
cairo_in_clip, cairo_in_clip () +
cairo_in_clip, cairo_in_clip ()

M

-
CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_JP2 +
CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_JP2
-
CAIRO_MIME_TYPE_JPEG, CAIRO_MIME_TYPE_JPEG +
CAIRO_MIME_TYPE_JPEG, CAIRO_MIME_TYPE_JPEG
-
CAIRO_MIME_TYPE_PNG, CAIRO_MIME_TYPE_PNG +
CAIRO_MIME_TYPE_PNG, CAIRO_MIME_TYPE_PNG
-
CAIRO_MIME_TYPE_URI, CAIRO_MIME_TYPE_URI +
CAIRO_MIME_TYPE_URI, CAIRO_MIME_TYPE_URI

P

-
cairo_pdf_get_versions, cairo_pdf_get_versions () +
cairo_pdf_get_versions, cairo_pdf_get_versions ()
-
cairo_pdf_surface_restrict_to_version, cairo_pdf_surface_restrict_to_version () +
cairo_pdf_surface_restrict_to_version, cairo_pdf_surface_restrict_to_version ()
-
cairo_pdf_version_t, enum cairo_pdf_version_t +
cairo_pdf_version_t, enum cairo_pdf_version_t
-
cairo_pdf_version_to_string, cairo_pdf_version_to_string () +
cairo_pdf_version_to_string, cairo_pdf_version_to_string ()

R

-
cairo_recording_surface_create, cairo_recording_surface_create () +
cairo_recording_surface_create, cairo_recording_surface_create ()
-
cairo_recording_surface_ink_extents, cairo_recording_surface_ink_extents () +
cairo_recording_surface_ink_extents, cairo_recording_surface_ink_extents ()
-
cairo_rectangle_int_t, cairo_rectangle_int_t +
cairo_rectangle_int_t, cairo_rectangle_int_t
-
cairo_region_contains_point, cairo_region_contains_point () +
cairo_region_contains_point, cairo_region_contains_point ()
-
cairo_region_contains_rectangle, cairo_region_contains_rectangle () +
cairo_region_contains_rectangle, cairo_region_contains_rectangle ()
-
cairo_region_copy, cairo_region_copy () +
cairo_region_copy, cairo_region_copy ()
-
cairo_region_create, cairo_region_create () +
cairo_region_create, cairo_region_create ()
-
cairo_region_create_rectangle, cairo_region_create_rectangle () +
cairo_region_create_rectangle, cairo_region_create_rectangle ()
-
cairo_region_create_rectangles, cairo_region_create_rectangles () +
cairo_region_create_rectangles, cairo_region_create_rectangles ()
-
cairo_region_destroy, cairo_region_destroy () +
cairo_region_destroy, cairo_region_destroy ()
-
cairo_region_equal, cairo_region_equal () +
cairo_region_equal, cairo_region_equal ()
-
cairo_region_get_extents, cairo_region_get_extents () +
cairo_region_get_extents, cairo_region_get_extents ()
-
cairo_region_get_rectangle, cairo_region_get_rectangle () +
cairo_region_get_rectangle, cairo_region_get_rectangle ()
-
cairo_region_intersect, cairo_region_intersect () +
cairo_region_intersect, cairo_region_intersect ()
-
cairo_region_intersect_rectangle, cairo_region_intersect_rectangle () +
cairo_region_intersect_rectangle, cairo_region_intersect_rectangle ()
-
cairo_region_is_empty, cairo_region_is_empty () +
cairo_region_is_empty, cairo_region_is_empty ()
-
cairo_region_num_rectangles, cairo_region_num_rectangles () +
cairo_region_num_rectangles, cairo_region_num_rectangles ()
-
cairo_region_overlap_t, enum cairo_region_overlap_t +
cairo_region_overlap_t, enum cairo_region_overlap_t
-
cairo_region_reference, cairo_region_reference () +
cairo_region_reference, cairo_region_reference ()
-
cairo_region_status, cairo_region_status () +
cairo_region_status, cairo_region_status ()
-
cairo_region_subtract, cairo_region_subtract () +
cairo_region_subtract, cairo_region_subtract ()
-
cairo_region_subtract_rectangle, cairo_region_subtract_rectangle () +
cairo_region_subtract_rectangle, cairo_region_subtract_rectangle ()
-
cairo_region_t, cairo_region_t +
cairo_region_t, cairo_region_t
-
cairo_region_translate, cairo_region_translate () +
cairo_region_translate, cairo_region_translate ()
-
cairo_region_union, cairo_region_union () +
cairo_region_union, cairo_region_union ()
-
cairo_region_union_rectangle, cairo_region_union_rectangle () +
cairo_region_union_rectangle, cairo_region_union_rectangle ()
-
cairo_region_xor, cairo_region_xor () +
cairo_region_xor, cairo_region_xor ()
-
cairo_region_xor_rectangle, cairo_region_xor_rectangle () +
cairo_region_xor_rectangle, cairo_region_xor_rectangle ()

S

-
cairo_surface_create_for_rectangle, cairo_surface_create_for_rectangle () +
cairo_surface_create_for_rectangle, cairo_surface_create_for_rectangle ()
-
cairo_surface_get_device, cairo_surface_get_device () +
cairo_surface_get_device, cairo_surface_get_device ()
-
cairo_surface_get_mime_data, cairo_surface_get_mime_data () +
cairo_surface_get_mime_data, cairo_surface_get_mime_data ()
-
cairo_surface_set_mime_data, cairo_surface_set_mime_data () +
cairo_surface_set_mime_data, cairo_surface_set_mime_data ()
diff --git a/WebKitLibraries/cairo/doc/public/html/index-1.12.html b/WebKitLibraries/cairo/doc/public/html/index-1.12.html index a8510b952..3fc937b8e 100644 --- a/WebKitLibraries/cairo/doc/public/html/index-1.12.html +++ b/WebKitLibraries/cairo/doc/public/html/index-1.12.html @@ -26,161 +26,161 @@

F

-
cairo_ft_font_face_get_synthesize, cairo_ft_font_face_get_synthesize () +
cairo_ft_font_face_get_synthesize, cairo_ft_font_face_get_synthesize ()
-
cairo_ft_font_face_set_synthesize, cairo_ft_font_face_set_synthesize () +
cairo_ft_font_face_set_synthesize, cairo_ft_font_face_set_synthesize ()
-
cairo_ft_font_face_unset_synthesize, cairo_ft_font_face_unset_synthesize () +
cairo_ft_font_face_unset_synthesize, cairo_ft_font_face_unset_synthesize ()
-
cairo_ft_synthesize_t, enum cairo_ft_synthesize_t +
cairo_ft_synthesize_t, enum cairo_ft_synthesize_t

H

-
CAIRO_HAS_SCRIPT_SURFACE, CAIRO_HAS_SCRIPT_SURFACE +
CAIRO_HAS_SCRIPT_SURFACE, CAIRO_HAS_SCRIPT_SURFACE
-
CAIRO_HAS_XCB_SURFACE, CAIRO_HAS_XCB_SURFACE +
CAIRO_HAS_XCB_SURFACE, CAIRO_HAS_XCB_SURFACE

M

-
cairo_mesh_pattern_begin_patch, cairo_mesh_pattern_begin_patch () +
cairo_mesh_pattern_begin_patch, cairo_mesh_pattern_begin_patch ()
-
cairo_mesh_pattern_curve_to, cairo_mesh_pattern_curve_to () +
cairo_mesh_pattern_curve_to, cairo_mesh_pattern_curve_to ()
-
cairo_mesh_pattern_end_patch, cairo_mesh_pattern_end_patch () +
cairo_mesh_pattern_end_patch, cairo_mesh_pattern_end_patch ()
-
cairo_mesh_pattern_get_control_point, cairo_mesh_pattern_get_control_point () +
cairo_mesh_pattern_get_control_point, cairo_mesh_pattern_get_control_point ()
-
cairo_mesh_pattern_get_corner_color_rgba, cairo_mesh_pattern_get_corner_color_rgba () +
cairo_mesh_pattern_get_corner_color_rgba, cairo_mesh_pattern_get_corner_color_rgba ()
-
cairo_mesh_pattern_get_patch_count, cairo_mesh_pattern_get_patch_count () +
cairo_mesh_pattern_get_patch_count, cairo_mesh_pattern_get_patch_count ()
-
cairo_mesh_pattern_get_path, cairo_mesh_pattern_get_path () +
cairo_mesh_pattern_get_path, cairo_mesh_pattern_get_path ()
-
cairo_mesh_pattern_line_to, cairo_mesh_pattern_line_to () +
cairo_mesh_pattern_line_to, cairo_mesh_pattern_line_to ()
-
cairo_mesh_pattern_move_to, cairo_mesh_pattern_move_to () +
cairo_mesh_pattern_move_to, cairo_mesh_pattern_move_to ()
-
cairo_mesh_pattern_set_control_point, cairo_mesh_pattern_set_control_point () +
cairo_mesh_pattern_set_control_point, cairo_mesh_pattern_set_control_point ()
-
cairo_mesh_pattern_set_corner_color_rgb, cairo_mesh_pattern_set_corner_color_rgb () +
cairo_mesh_pattern_set_corner_color_rgb, cairo_mesh_pattern_set_corner_color_rgb ()
-
cairo_mesh_pattern_set_corner_color_rgba, cairo_mesh_pattern_set_corner_color_rgba () +
cairo_mesh_pattern_set_corner_color_rgba, cairo_mesh_pattern_set_corner_color_rgba ()
-
CAIRO_MIME_TYPE_UNIQUE_ID, CAIRO_MIME_TYPE_UNIQUE_ID +
CAIRO_MIME_TYPE_UNIQUE_ID, CAIRO_MIME_TYPE_UNIQUE_ID

P

-
cairo_pattern_create_mesh, cairo_pattern_create_mesh () +
cairo_pattern_create_mesh, cairo_pattern_create_mesh ()
-
cairo_pattern_create_raster_source, cairo_pattern_create_raster_source () +
cairo_pattern_create_raster_source, cairo_pattern_create_raster_source ()

R

-
cairo_raster_source_acquire_func_t, cairo_raster_source_acquire_func_t () +
cairo_raster_source_acquire_func_t, cairo_raster_source_acquire_func_t ()
-
cairo_raster_source_copy_func_t, cairo_raster_source_copy_func_t () +
cairo_raster_source_copy_func_t, cairo_raster_source_copy_func_t ()
-
cairo_raster_source_finish_func_t, cairo_raster_source_finish_func_t () +
cairo_raster_source_finish_func_t, cairo_raster_source_finish_func_t ()
-
cairo_raster_source_pattern_get_acquire, cairo_raster_source_pattern_get_acquire () +
cairo_raster_source_pattern_get_acquire, cairo_raster_source_pattern_get_acquire ()
-
cairo_raster_source_pattern_get_callback_data, cairo_raster_source_pattern_get_callback_data () +
cairo_raster_source_pattern_get_callback_data, cairo_raster_source_pattern_get_callback_data ()
-
cairo_raster_source_pattern_get_copy, cairo_raster_source_pattern_get_copy () +
cairo_raster_source_pattern_get_copy, cairo_raster_source_pattern_get_copy ()
-
cairo_raster_source_pattern_get_finish, cairo_raster_source_pattern_get_finish () +
cairo_raster_source_pattern_get_finish, cairo_raster_source_pattern_get_finish ()
-
cairo_raster_source_pattern_get_snapshot, cairo_raster_source_pattern_get_snapshot () +
cairo_raster_source_pattern_get_snapshot, cairo_raster_source_pattern_get_snapshot ()
-
cairo_raster_source_pattern_set_acquire, cairo_raster_source_pattern_set_acquire () +
cairo_raster_source_pattern_set_acquire, cairo_raster_source_pattern_set_acquire ()
-
cairo_raster_source_pattern_set_callback_data, cairo_raster_source_pattern_set_callback_data () +
cairo_raster_source_pattern_set_callback_data, cairo_raster_source_pattern_set_callback_data ()
-
cairo_raster_source_pattern_set_copy, cairo_raster_source_pattern_set_copy () +
cairo_raster_source_pattern_set_copy, cairo_raster_source_pattern_set_copy ()
-
cairo_raster_source_pattern_set_finish, cairo_raster_source_pattern_set_finish () +
cairo_raster_source_pattern_set_finish, cairo_raster_source_pattern_set_finish ()
-
cairo_raster_source_pattern_set_snapshot, cairo_raster_source_pattern_set_snapshot () +
cairo_raster_source_pattern_set_snapshot, cairo_raster_source_pattern_set_snapshot ()
-
cairo_raster_source_release_func_t, cairo_raster_source_release_func_t () +
cairo_raster_source_release_func_t, cairo_raster_source_release_func_t ()
-
cairo_raster_source_snapshot_func_t, cairo_raster_source_snapshot_func_t () +
cairo_raster_source_snapshot_func_t, cairo_raster_source_snapshot_func_t ()
-
cairo_recording_surface_get_extents, cairo_recording_surface_get_extents () +
cairo_recording_surface_get_extents, cairo_recording_surface_get_extents ()

S

-
cairo_script_create, cairo_script_create () +
cairo_script_create, cairo_script_create ()
-
cairo_script_create_for_stream, cairo_script_create_for_stream () +
cairo_script_create_for_stream, cairo_script_create_for_stream ()
-
cairo_script_from_recording_surface, cairo_script_from_recording_surface () +
cairo_script_from_recording_surface, cairo_script_from_recording_surface ()
-
cairo_script_get_mode, cairo_script_get_mode () +
cairo_script_get_mode, cairo_script_get_mode ()
-
cairo_script_mode_t, enum cairo_script_mode_t +
cairo_script_mode_t, enum cairo_script_mode_t
-
cairo_script_set_mode, cairo_script_set_mode () +
cairo_script_set_mode, cairo_script_set_mode ()
-
cairo_script_surface_create, cairo_script_surface_create () +
cairo_script_surface_create, cairo_script_surface_create ()
-
cairo_script_surface_create_for_target, cairo_script_surface_create_for_target () +
cairo_script_surface_create_for_target, cairo_script_surface_create_for_target ()
-
cairo_script_write_comment, cairo_script_write_comment () +
cairo_script_write_comment, cairo_script_write_comment ()
-
cairo_surface_create_similar_image, cairo_surface_create_similar_image () +
cairo_surface_create_similar_image, cairo_surface_create_similar_image ()
-
cairo_surface_map_to_image, cairo_surface_map_to_image () +
cairo_surface_map_to_image, cairo_surface_map_to_image ()
-
cairo_surface_supports_mime_type, cairo_surface_supports_mime_type () +
cairo_surface_supports_mime_type, cairo_surface_supports_mime_type ()
-
cairo_surface_unmap_image, cairo_surface_unmap_image () +
cairo_surface_unmap_image, cairo_surface_unmap_image ()

X

-
cairo_xcb_device_debug_cap_xrender_version, cairo_xcb_device_debug_cap_xrender_version () +
cairo_xcb_device_debug_cap_xrender_version, cairo_xcb_device_debug_cap_xrender_version ()
-
cairo_xcb_device_debug_cap_xshm_version, cairo_xcb_device_debug_cap_xshm_version () +
cairo_xcb_device_debug_cap_xshm_version, cairo_xcb_device_debug_cap_xshm_version ()
-
cairo_xcb_device_debug_get_precision, cairo_xcb_device_debug_get_precision () +
cairo_xcb_device_debug_get_precision, cairo_xcb_device_debug_get_precision ()
-
cairo_xcb_device_debug_set_precision, cairo_xcb_device_debug_set_precision () +
cairo_xcb_device_debug_set_precision, cairo_xcb_device_debug_set_precision ()
-
cairo_xcb_device_get_connection, cairo_xcb_device_get_connection () +
cairo_xcb_device_get_connection, cairo_xcb_device_get_connection ()
-
cairo_xcb_surface_create, cairo_xcb_surface_create () +
cairo_xcb_surface_create, cairo_xcb_surface_create ()
-
cairo_xcb_surface_create_for_bitmap, cairo_xcb_surface_create_for_bitmap () +
cairo_xcb_surface_create_for_bitmap, cairo_xcb_surface_create_for_bitmap ()
-
cairo_xcb_surface_create_with_xrender_format, cairo_xcb_surface_create_with_xrender_format () +
cairo_xcb_surface_create_with_xrender_format, cairo_xcb_surface_create_with_xrender_format ()
-
cairo_xcb_surface_set_drawable, cairo_xcb_surface_set_drawable () +
cairo_xcb_surface_set_drawable, cairo_xcb_surface_set_drawable ()
-
cairo_xcb_surface_set_size, cairo_xcb_surface_set_size () +
cairo_xcb_surface_set_size, cairo_xcb_surface_set_size ()
-
cairo_xlib_device_debug_cap_xrender_version, cairo_xlib_device_debug_cap_xrender_version () +
cairo_xlib_device_debug_cap_xrender_version, cairo_xlib_device_debug_cap_xrender_version ()
-
cairo_xlib_device_debug_get_precision, cairo_xlib_device_debug_get_precision () +
cairo_xlib_device_debug_get_precision, cairo_xlib_device_debug_get_precision ()
-
cairo_xlib_device_debug_set_precision, cairo_xlib_device_debug_set_precision () +
cairo_xlib_device_debug_set_precision, cairo_xlib_device_debug_set_precision ()
diff --git a/WebKitLibraries/cairo/doc/public/html/index-1.14.html b/WebKitLibraries/cairo/doc/public/html/index-1.14.html index f85de1d1a..c6d756b35 100644 --- a/WebKitLibraries/cairo/doc/public/html/index-1.14.html +++ b/WebKitLibraries/cairo/doc/public/html/index-1.14.html @@ -26,20 +26,20 @@

M

-
CAIRO_MIME_TYPE_JBIG2, CAIRO_MIME_TYPE_JBIG2 +
CAIRO_MIME_TYPE_JBIG2, CAIRO_MIME_TYPE_JBIG2
-
CAIRO_MIME_TYPE_JBIG2_GLOBAL, CAIRO_MIME_TYPE_JBIG2_GLOBAL +
CAIRO_MIME_TYPE_JBIG2_GLOBAL, CAIRO_MIME_TYPE_JBIG2_GLOBAL
-
CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID +
CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID

S

-
cairo_surface_get_device_scale, cairo_surface_get_device_scale () +
cairo_surface_get_device_scale, cairo_surface_get_device_scale ()
-
cairo_surface_set_device_scale, cairo_surface_set_device_scale () +
cairo_surface_set_device_scale, cairo_surface_set_device_scale ()
diff --git a/WebKitLibraries/cairo/doc/public/html/index-1.2.html b/WebKitLibraries/cairo/doc/public/html/index-1.2.html index 07b88f719..34a6945a4 100644 --- a/WebKitLibraries/cairo/doc/public/html/index-1.2.html +++ b/WebKitLibraries/cairo/doc/public/html/index-1.2.html @@ -26,145 +26,147 @@

F

-
cairo_font_face_get_type, cairo_font_face_get_type () +
cairo_font_face_get_type, cairo_font_face_get_type ()
-
cairo_font_type_t, enum cairo_font_type_t +
cairo_font_type_t, enum cairo_font_type_t

G

-
cairo_get_group_target, cairo_get_group_target () +
cairo_get_group_target, cairo_get_group_target ()

H

-
CAIRO_HAS_PDF_SURFACE, CAIRO_HAS_PDF_SURFACE +
CAIRO_HAS_PDF_SURFACE, CAIRO_HAS_PDF_SURFACE
-
CAIRO_HAS_PS_SURFACE, CAIRO_HAS_PS_SURFACE +
CAIRO_HAS_PS_SURFACE, CAIRO_HAS_PS_SURFACE
-
CAIRO_HAS_SVG_SURFACE, CAIRO_HAS_SVG_SURFACE +
CAIRO_HAS_SVG_SURFACE, CAIRO_HAS_SVG_SURFACE

I

-
cairo_image_surface_get_data, cairo_image_surface_get_data () +
cairo_image_surface_get_data, cairo_image_surface_get_data ()
-
cairo_image_surface_get_format, cairo_image_surface_get_format () +
cairo_image_surface_get_format, cairo_image_surface_get_format ()
-
cairo_image_surface_get_stride, cairo_image_surface_get_stride () +
cairo_image_surface_get_stride, cairo_image_surface_get_stride ()

N

-
cairo_new_sub_path, cairo_new_sub_path () +
cairo_new_sub_path, cairo_new_sub_path ()

P

-
cairo_pattern_get_type, cairo_pattern_get_type () +
cairo_pattern_get_type, cairo_pattern_get_type ()
-
cairo_pattern_type_t, enum cairo_pattern_type_t +
cairo_pattern_type_t, enum cairo_pattern_type_t
-
cairo_pdf_surface_create, cairo_pdf_surface_create () +
cairo_pdf_surface_create, cairo_pdf_surface_create ()
-
cairo_pdf_surface_create_for_stream, cairo_pdf_surface_create_for_stream () +
cairo_pdf_surface_create_for_stream, cairo_pdf_surface_create_for_stream ()
-
cairo_pdf_surface_set_size, cairo_pdf_surface_set_size () +
cairo_pdf_surface_set_size, cairo_pdf_surface_set_size ()
-
cairo_pop_group, cairo_pop_group () +
cairo_pop_group, cairo_pop_group ()
-
cairo_pop_group_to_source, cairo_pop_group_to_source () +
cairo_pop_group_to_source, cairo_pop_group_to_source ()
-
cairo_ps_surface_create, cairo_ps_surface_create () +
cairo_ps_surface_create, cairo_ps_surface_create ()
-
cairo_ps_surface_create_for_stream, cairo_ps_surface_create_for_stream () +
cairo_ps_surface_create_for_stream, cairo_ps_surface_create_for_stream ()
-
cairo_ps_surface_dsc_begin_page_setup, cairo_ps_surface_dsc_begin_page_setup () +
cairo_ps_surface_dsc_begin_page_setup, cairo_ps_surface_dsc_begin_page_setup ()
-
cairo_ps_surface_dsc_begin_setup, cairo_ps_surface_dsc_begin_setup () +
cairo_ps_surface_dsc_begin_setup, cairo_ps_surface_dsc_begin_setup ()
-
cairo_ps_surface_dsc_comment, cairo_ps_surface_dsc_comment () +
cairo_ps_surface_dsc_comment, cairo_ps_surface_dsc_comment ()
-
cairo_ps_surface_set_size, cairo_ps_surface_set_size () +
cairo_ps_surface_set_size, cairo_ps_surface_set_size ()
-
cairo_push_group, cairo_push_group () +
cairo_push_group, cairo_push_group ()
-
cairo_push_group_with_content, cairo_push_group_with_content () +
cairo_push_group_with_content, cairo_push_group_with_content ()

S

-
cairo_scaled_font_get_ctm, cairo_scaled_font_get_ctm () +
cairo_scaled_font_get_ctm, cairo_scaled_font_get_ctm ()
-
cairo_scaled_font_get_font_face, cairo_scaled_font_get_font_face () +
cairo_scaled_font_get_font_face, cairo_scaled_font_get_font_face ()
-
cairo_scaled_font_get_font_matrix, cairo_scaled_font_get_font_matrix () +
cairo_scaled_font_get_font_matrix, cairo_scaled_font_get_font_matrix ()
-
cairo_scaled_font_get_font_options, cairo_scaled_font_get_font_options () +
cairo_scaled_font_get_font_options, cairo_scaled_font_get_font_options ()
-
cairo_scaled_font_get_type, cairo_scaled_font_get_type () +
cairo_scaled_font_get_type, cairo_scaled_font_get_type ()
-
cairo_scaled_font_text_extents, cairo_scaled_font_text_extents () +
cairo_scaled_font_text_extents, cairo_scaled_font_text_extents ()
-
cairo_set_scaled_font, cairo_set_scaled_font () +
cairo_set_scaled_font, cairo_set_scaled_font ()
-
cairo_surface_get_content, cairo_surface_get_content () +
cairo_surface_get_content, cairo_surface_get_content ()
-
cairo_surface_get_device_offset, cairo_surface_get_device_offset () +
cairo_surface_get_device_offset, cairo_surface_get_device_offset ()
-
cairo_surface_get_type, cairo_surface_get_type () +
cairo_surface_get_type, cairo_surface_get_type ()
-
cairo_surface_set_fallback_resolution, cairo_surface_set_fallback_resolution () +
cairo_surface_set_fallback_resolution, cairo_surface_set_fallback_resolution ()
-
cairo_surface_type_t, enum cairo_surface_type_t +
cairo_surface_type_t, enum cairo_surface_type_t
-
cairo_svg_get_versions, cairo_svg_get_versions () +
cairo_svg_get_versions, cairo_svg_get_versions ()
-
cairo_svg_surface_create, cairo_svg_surface_create () +
cairo_svg_surface_create, cairo_svg_surface_create ()
-
cairo_svg_surface_create_for_stream, cairo_svg_surface_create_for_stream () +
cairo_svg_surface_create_for_stream, cairo_svg_surface_create_for_stream ()
-
cairo_svg_surface_restrict_to_version, cairo_svg_surface_restrict_to_version () +
cairo_svg_surface_restrict_to_version, cairo_svg_surface_restrict_to_version ()
-
cairo_svg_version_to_string, cairo_svg_version_to_string () +
cairo_svg_version_t, enum cairo_svg_version_t +
+
cairo_svg_version_to_string, cairo_svg_version_to_string ()

W

-
cairo_win32_font_face_create_for_hfont, cairo_win32_font_face_create_for_hfont () +
cairo_win32_font_face_create_for_hfont, cairo_win32_font_face_create_for_hfont ()
-
cairo_win32_surface_create_with_dib, cairo_win32_surface_create_with_dib () +
cairo_win32_surface_create_with_dib, cairo_win32_surface_create_with_dib ()
-
cairo_win32_surface_get_dc, cairo_win32_surface_get_dc () +
cairo_win32_surface_get_dc, cairo_win32_surface_get_dc ()

X

-
cairo_xlib_surface_get_depth, cairo_xlib_surface_get_depth () +
cairo_xlib_surface_get_depth, cairo_xlib_surface_get_depth ()
-
cairo_xlib_surface_get_display, cairo_xlib_surface_get_display () +
cairo_xlib_surface_get_display, cairo_xlib_surface_get_display ()
-
cairo_xlib_surface_get_drawable, cairo_xlib_surface_get_drawable () +
cairo_xlib_surface_get_drawable, cairo_xlib_surface_get_drawable ()
-
cairo_xlib_surface_get_height, cairo_xlib_surface_get_height () +
cairo_xlib_surface_get_height, cairo_xlib_surface_get_height ()
-
cairo_xlib_surface_get_screen, cairo_xlib_surface_get_screen () +
cairo_xlib_surface_get_screen, cairo_xlib_surface_get_screen ()
-
cairo_xlib_surface_get_visual, cairo_xlib_surface_get_visual () +
cairo_xlib_surface_get_visual, cairo_xlib_surface_get_visual ()
-
cairo_xlib_surface_get_width, cairo_xlib_surface_get_width () +
cairo_xlib_surface_get_width, cairo_xlib_surface_get_width ()
diff --git a/WebKitLibraries/cairo/doc/public/html/index-1.4.html b/WebKitLibraries/cairo/doc/public/html/index-1.4.html index b0060c3a0..4b6b8e96c 100644 --- a/WebKitLibraries/cairo/doc/public/html/index-1.4.html +++ b/WebKitLibraries/cairo/doc/public/html/index-1.4.html @@ -26,91 +26,91 @@

C

-
cairo_clip_extents, cairo_clip_extents () +
cairo_clip_extents, cairo_clip_extents ()
-
cairo_copy_clip_rectangle_list, cairo_copy_clip_rectangle_list () +
cairo_copy_clip_rectangle_list, cairo_copy_clip_rectangle_list ()

F

-
cairo_font_face_get_reference_count, cairo_font_face_get_reference_count () +
cairo_font_face_get_reference_count, cairo_font_face_get_reference_count ()

G

-
cairo_get_dash, cairo_get_dash () +
cairo_get_dash, cairo_get_dash ()
-
cairo_get_dash_count, cairo_get_dash_count () +
cairo_get_dash_count, cairo_get_dash_count ()
-
cairo_get_reference_count, cairo_get_reference_count () +
cairo_get_reference_count, cairo_get_reference_count ()
-
cairo_get_scaled_font, cairo_get_scaled_font () +
cairo_get_scaled_font, cairo_get_scaled_font ()
-
cairo_get_user_data, cairo_get_user_data () +
cairo_get_user_data, cairo_get_user_data ()

P

-
cairo_pattern_get_color_stop_count, cairo_pattern_get_color_stop_count () +
cairo_pattern_get_color_stop_count, cairo_pattern_get_color_stop_count ()
-
cairo_pattern_get_color_stop_rgba, cairo_pattern_get_color_stop_rgba () +
cairo_pattern_get_color_stop_rgba, cairo_pattern_get_color_stop_rgba ()
-
cairo_pattern_get_linear_points, cairo_pattern_get_linear_points () +
cairo_pattern_get_linear_points, cairo_pattern_get_linear_points ()
-
cairo_pattern_get_radial_circles, cairo_pattern_get_radial_circles () +
cairo_pattern_get_radial_circles, cairo_pattern_get_radial_circles ()
-
cairo_pattern_get_reference_count, cairo_pattern_get_reference_count () +
cairo_pattern_get_reference_count, cairo_pattern_get_reference_count ()
-
cairo_pattern_get_rgba, cairo_pattern_get_rgba () +
cairo_pattern_get_rgba, cairo_pattern_get_rgba ()
-
cairo_pattern_get_surface, cairo_pattern_get_surface () +
cairo_pattern_get_surface, cairo_pattern_get_surface ()
-
cairo_pattern_get_user_data, cairo_pattern_get_user_data () +
cairo_pattern_get_user_data, cairo_pattern_get_user_data ()
-
cairo_pattern_set_user_data, cairo_pattern_set_user_data () +
cairo_pattern_set_user_data, cairo_pattern_set_user_data ()

R

-
cairo_rectangle_list_destroy, cairo_rectangle_list_destroy () +
cairo_rectangle_list_destroy, cairo_rectangle_list_destroy ()
-
cairo_rectangle_list_t, cairo_rectangle_list_t +
cairo_rectangle_list_t, cairo_rectangle_list_t
-
cairo_rectangle_t, cairo_rectangle_t +
cairo_rectangle_t, cairo_rectangle_t

S

-
cairo_scaled_font_get_reference_count, cairo_scaled_font_get_reference_count () +
cairo_scaled_font_get_reference_count, cairo_scaled_font_get_reference_count ()
-
cairo_scaled_font_get_user_data, cairo_scaled_font_get_user_data () +
cairo_scaled_font_get_user_data, cairo_scaled_font_get_user_data ()
-
cairo_scaled_font_set_user_data, cairo_scaled_font_set_user_data () +
cairo_scaled_font_set_user_data, cairo_scaled_font_set_user_data ()
-
cairo_set_user_data, cairo_set_user_data () +
cairo_set_user_data, cairo_set_user_data ()
-
cairo_surface_get_reference_count, cairo_surface_get_reference_count () +
cairo_surface_get_reference_count, cairo_surface_get_reference_count ()

W

-
cairo_win32_scaled_font_get_device_to_logical, cairo_win32_scaled_font_get_device_to_logical () +
cairo_win32_scaled_font_get_device_to_logical, cairo_win32_scaled_font_get_device_to_logical ()
-
cairo_win32_scaled_font_get_logical_to_device, cairo_win32_scaled_font_get_logical_to_device () +
cairo_win32_scaled_font_get_logical_to_device, cairo_win32_scaled_font_get_logical_to_device ()
-
cairo_win32_surface_create_with_ddb, cairo_win32_surface_create_with_ddb () +
cairo_win32_surface_create_with_ddb, cairo_win32_surface_create_with_ddb ()
-
cairo_win32_surface_get_image, cairo_win32_surface_get_image () +
cairo_win32_surface_get_image, cairo_win32_surface_get_image ()
diff --git a/WebKitLibraries/cairo/doc/public/html/index-1.6.html b/WebKitLibraries/cairo/doc/public/html/index-1.6.html index 0152b835d..4c0392c30 100644 --- a/WebKitLibraries/cairo/doc/public/html/index-1.6.html +++ b/WebKitLibraries/cairo/doc/public/html/index-1.6.html @@ -25,77 +25,77 @@

F

-
cairo_format_stride_for_width, cairo_format_stride_for_width () +
cairo_format_stride_for_width, cairo_format_stride_for_width ()

H

-
cairo_has_current_point, cairo_has_current_point () +
cairo_has_current_point, cairo_has_current_point ()
-
CAIRO_HAS_QUARTZ_FONT, CAIRO_HAS_QUARTZ_FONT +
CAIRO_HAS_QUARTZ_FONT, CAIRO_HAS_QUARTZ_FONT
-
CAIRO_HAS_QUARTZ_SURFACE, CAIRO_HAS_QUARTZ_SURFACE +
CAIRO_HAS_QUARTZ_SURFACE, CAIRO_HAS_QUARTZ_SURFACE
-
CAIRO_HAS_XLIB_XRENDER_SURFACE, CAIRO_HAS_XLIB_XRENDER_SURFACE +
CAIRO_HAS_XLIB_XRENDER_SURFACE, CAIRO_HAS_XLIB_XRENDER_SURFACE

P

-
cairo_path_extents, cairo_path_extents () +
cairo_path_extents, cairo_path_extents ()
-
cairo_ps_get_levels, cairo_ps_get_levels () +
cairo_ps_get_levels, cairo_ps_get_levels ()
-
cairo_ps_level_t, enum cairo_ps_level_t +
cairo_ps_level_t, enum cairo_ps_level_t
-
cairo_ps_level_to_string, cairo_ps_level_to_string () +
cairo_ps_level_to_string, cairo_ps_level_to_string ()
-
cairo_ps_surface_get_eps, cairo_ps_surface_get_eps () +
cairo_ps_surface_get_eps, cairo_ps_surface_get_eps ()
-
cairo_ps_surface_restrict_to_level, cairo_ps_surface_restrict_to_level () +
cairo_ps_surface_restrict_to_level, cairo_ps_surface_restrict_to_level ()
-
cairo_ps_surface_set_eps, cairo_ps_surface_set_eps () +
cairo_ps_surface_set_eps, cairo_ps_surface_set_eps ()

Q

-
cairo_quartz_font_face_create_for_atsu_font_id, cairo_quartz_font_face_create_for_atsu_font_id () +
cairo_quartz_font_face_create_for_atsu_font_id, cairo_quartz_font_face_create_for_atsu_font_id ()
-
cairo_quartz_font_face_create_for_cgfont, cairo_quartz_font_face_create_for_cgfont () +
cairo_quartz_font_face_create_for_cgfont, cairo_quartz_font_face_create_for_cgfont ()
-
cairo_quartz_surface_create, cairo_quartz_surface_create () +
cairo_quartz_surface_create, cairo_quartz_surface_create ()
-
cairo_quartz_surface_create_for_cg_context, cairo_quartz_surface_create_for_cg_context () +
cairo_quartz_surface_create_for_cg_context, cairo_quartz_surface_create_for_cg_context ()
-
cairo_quartz_surface_get_cg_context, cairo_quartz_surface_get_cg_context () +
cairo_quartz_surface_get_cg_context, cairo_quartz_surface_get_cg_context ()

S

-
cairo_surface_copy_page, cairo_surface_copy_page () +
cairo_surface_copy_page, cairo_surface_copy_page ()
-
cairo_surface_show_page, cairo_surface_show_page () +
cairo_surface_show_page, cairo_surface_show_page ()

W

-
cairo_win32_font_face_create_for_logfontw_hfont, cairo_win32_font_face_create_for_logfontw_hfont () +
cairo_win32_font_face_create_for_logfontw_hfont, cairo_win32_font_face_create_for_logfontw_hfont ()
-
cairo_win32_printing_surface_create, cairo_win32_printing_surface_create () +
cairo_win32_printing_surface_create, cairo_win32_printing_surface_create ()

X

-
cairo_xlib_surface_get_xrender_format, cairo_xlib_surface_get_xrender_format () +
cairo_xlib_surface_get_xrender_format, cairo_xlib_surface_get_xrender_format ()
diff --git a/WebKitLibraries/cairo/doc/public/html/index-1.8.html b/WebKitLibraries/cairo/doc/public/html/index-1.8.html index b648eb0e4..22407f3dc 100644 --- a/WebKitLibraries/cairo/doc/public/html/index-1.8.html +++ b/WebKitLibraries/cairo/doc/public/html/index-1.8.html @@ -26,96 +26,96 @@

G

-
cairo_glyph_allocate, cairo_glyph_allocate () +
cairo_glyph_allocate, cairo_glyph_allocate ()
-
cairo_glyph_free, cairo_glyph_free () +
cairo_glyph_free, cairo_glyph_free ()

H

-
CAIRO_HAS_IMAGE_SURFACE, CAIRO_HAS_IMAGE_SURFACE +
CAIRO_HAS_IMAGE_SURFACE, CAIRO_HAS_IMAGE_SURFACE
-
CAIRO_HAS_USER_FONT, CAIRO_HAS_USER_FONT +
CAIRO_HAS_USER_FONT, CAIRO_HAS_USER_FONT
-
CAIRO_HAS_WIN32_FONT, CAIRO_HAS_WIN32_FONT +
CAIRO_HAS_WIN32_FONT, CAIRO_HAS_WIN32_FONT

S

-
cairo_scaled_font_get_scale_matrix, cairo_scaled_font_get_scale_matrix () +
cairo_scaled_font_get_scale_matrix, cairo_scaled_font_get_scale_matrix ()
-
cairo_scaled_font_text_to_glyphs, cairo_scaled_font_text_to_glyphs () +
cairo_scaled_font_text_to_glyphs, cairo_scaled_font_text_to_glyphs ()
-
cairo_show_text_glyphs, cairo_show_text_glyphs () +
cairo_show_text_glyphs, cairo_show_text_glyphs ()
-
cairo_surface_get_fallback_resolution, cairo_surface_get_fallback_resolution () +
cairo_surface_get_fallback_resolution, cairo_surface_get_fallback_resolution ()
-
cairo_surface_has_show_text_glyphs, cairo_surface_has_show_text_glyphs () +
cairo_surface_has_show_text_glyphs, cairo_surface_has_show_text_glyphs ()

T

-
cairo_text_cluster_allocate, cairo_text_cluster_allocate () +
cairo_text_cluster_allocate, cairo_text_cluster_allocate ()
-
cairo_text_cluster_flags_t, enum cairo_text_cluster_flags_t +
cairo_text_cluster_flags_t, enum cairo_text_cluster_flags_t
-
cairo_text_cluster_free, cairo_text_cluster_free () +
cairo_text_cluster_free, cairo_text_cluster_free ()
-
cairo_text_cluster_t, cairo_text_cluster_t +
cairo_text_cluster_t, cairo_text_cluster_t
-
cairo_toy_font_face_create, cairo_toy_font_face_create () +
cairo_toy_font_face_create, cairo_toy_font_face_create ()
-
cairo_toy_font_face_get_family, cairo_toy_font_face_get_family () +
cairo_toy_font_face_get_family, cairo_toy_font_face_get_family ()
-
cairo_toy_font_face_get_slant, cairo_toy_font_face_get_slant () +
cairo_toy_font_face_get_slant, cairo_toy_font_face_get_slant ()
-
cairo_toy_font_face_get_weight, cairo_toy_font_face_get_weight () +
cairo_toy_font_face_get_weight, cairo_toy_font_face_get_weight ()

U

-
cairo_user_font_face_create, cairo_user_font_face_create () +
cairo_user_font_face_create, cairo_user_font_face_create ()
-
cairo_user_font_face_get_init_func, cairo_user_font_face_get_init_func () +
cairo_user_font_face_get_init_func, cairo_user_font_face_get_init_func ()
-
cairo_user_font_face_get_render_glyph_func, cairo_user_font_face_get_render_glyph_func () +
cairo_user_font_face_get_render_glyph_func, cairo_user_font_face_get_render_glyph_func ()
-
cairo_user_font_face_get_text_to_glyphs_func, cairo_user_font_face_get_text_to_glyphs_func () +
cairo_user_font_face_get_text_to_glyphs_func, cairo_user_font_face_get_text_to_glyphs_func ()
-
cairo_user_font_face_get_unicode_to_glyph_func, cairo_user_font_face_get_unicode_to_glyph_func () +
cairo_user_font_face_get_unicode_to_glyph_func, cairo_user_font_face_get_unicode_to_glyph_func ()
-
cairo_user_font_face_set_init_func, cairo_user_font_face_set_init_func () +
cairo_user_font_face_set_init_func, cairo_user_font_face_set_init_func ()
-
cairo_user_font_face_set_render_glyph_func, cairo_user_font_face_set_render_glyph_func () +
cairo_user_font_face_set_render_glyph_func, cairo_user_font_face_set_render_glyph_func ()
-
cairo_user_font_face_set_text_to_glyphs_func, cairo_user_font_face_set_text_to_glyphs_func () +
cairo_user_font_face_set_text_to_glyphs_func, cairo_user_font_face_set_text_to_glyphs_func ()
-
cairo_user_font_face_set_unicode_to_glyph_func, cairo_user_font_face_set_unicode_to_glyph_func () +
cairo_user_font_face_set_unicode_to_glyph_func, cairo_user_font_face_set_unicode_to_glyph_func ()
-
cairo_user_scaled_font_init_func_t, cairo_user_scaled_font_init_func_t () +
cairo_user_scaled_font_init_func_t, cairo_user_scaled_font_init_func_t ()
-
cairo_user_scaled_font_render_glyph_func_t, cairo_user_scaled_font_render_glyph_func_t () +
cairo_user_scaled_font_render_glyph_func_t, cairo_user_scaled_font_render_glyph_func_t ()
-
cairo_user_scaled_font_text_to_glyphs_func_t, cairo_user_scaled_font_text_to_glyphs_func_t () +
cairo_user_scaled_font_text_to_glyphs_func_t, cairo_user_scaled_font_text_to_glyphs_func_t ()
-
cairo_user_scaled_font_unicode_to_glyph_func_t, cairo_user_scaled_font_unicode_to_glyph_func_t () +
cairo_user_scaled_font_unicode_to_glyph_func_t, cairo_user_scaled_font_unicode_to_glyph_func_t ()

V

-
CAIRO_VERSION_STRING, CAIRO_VERSION_STRING +
CAIRO_VERSION_STRING, CAIRO_VERSION_STRING
-
CAIRO_VERSION_STRINGIZE, CAIRO_VERSION_STRINGIZE() +
CAIRO_VERSION_STRINGIZE, CAIRO_VERSION_STRINGIZE()
diff --git a/WebKitLibraries/cairo/doc/public/html/index-all.html b/WebKitLibraries/cairo/doc/public/html/index-all.html index 9815bbe06..e5175d638 100644 --- a/WebKitLibraries/cairo/doc/public/html/index-all.html +++ b/WebKitLibraries/cairo/doc/public/html/index-all.html @@ -26,1120 +26,1120 @@

A

-
cairo_antialias_t, enum cairo_antialias_t +
cairo_antialias_t, enum cairo_antialias_t
-
cairo_append_path, cairo_append_path () +
cairo_append_path, cairo_append_path ()
-
cairo_arc, cairo_arc () +
cairo_arc, cairo_arc ()
-
cairo_arc_negative, cairo_arc_negative () +
cairo_arc_negative, cairo_arc_negative ()

B

-
cairo_bool_t, cairo_bool_t +
cairo_bool_t, cairo_bool_t

C

-
cairo_clip, cairo_clip () +
cairo_clip, cairo_clip ()
-
cairo_clip_extents, cairo_clip_extents () +
cairo_clip_extents, cairo_clip_extents ()
-
cairo_clip_preserve, cairo_clip_preserve () +
cairo_clip_preserve, cairo_clip_preserve ()
-
cairo_close_path, cairo_close_path () +
cairo_close_path, cairo_close_path ()
-
cairo_content_t, enum cairo_content_t +
cairo_content_t, enum cairo_content_t
-
cairo_copy_clip_rectangle_list, cairo_copy_clip_rectangle_list () +
cairo_copy_clip_rectangle_list, cairo_copy_clip_rectangle_list ()
-
cairo_copy_page, cairo_copy_page () +
cairo_copy_page, cairo_copy_page ()
-
cairo_copy_path, cairo_copy_path () +
cairo_copy_path, cairo_copy_path ()
-
cairo_copy_path_flat, cairo_copy_path_flat () +
cairo_copy_path_flat, cairo_copy_path_flat ()
-
cairo_create, cairo_create () +
cairo_create, cairo_create ()
-
cairo_curve_to, cairo_curve_to () +
cairo_curve_to, cairo_curve_to ()

D

-
cairo_debug_reset_static_data, cairo_debug_reset_static_data () +
cairo_debug_reset_static_data, cairo_debug_reset_static_data ()
-
cairo_destroy, cairo_destroy () +
cairo_destroy, cairo_destroy ()
-
cairo_destroy_func_t, cairo_destroy_func_t () +
cairo_destroy_func_t, cairo_destroy_func_t ()
-
cairo_device_acquire, cairo_device_acquire () +
cairo_device_acquire, cairo_device_acquire ()
-
cairo_device_destroy, cairo_device_destroy () +
cairo_device_destroy, cairo_device_destroy ()
-
cairo_device_finish, cairo_device_finish () +
cairo_device_finish, cairo_device_finish ()
-
cairo_device_flush, cairo_device_flush () +
cairo_device_flush, cairo_device_flush ()
-
cairo_device_get_reference_count, cairo_device_get_reference_count () +
cairo_device_get_reference_count, cairo_device_get_reference_count ()
-
cairo_device_get_type, cairo_device_get_type () +
cairo_device_get_type, cairo_device_get_type ()
-
cairo_device_get_user_data, cairo_device_get_user_data () +
cairo_device_get_user_data, cairo_device_get_user_data ()
-
cairo_device_observer_elapsed, cairo_device_observer_elapsed () +
cairo_device_observer_elapsed, cairo_device_observer_elapsed ()
-
cairo_device_observer_fill_elapsed, cairo_device_observer_fill_elapsed () +
cairo_device_observer_fill_elapsed, cairo_device_observer_fill_elapsed ()
-
cairo_device_observer_glyphs_elapsed, cairo_device_observer_glyphs_elapsed () +
cairo_device_observer_glyphs_elapsed, cairo_device_observer_glyphs_elapsed ()
-
cairo_device_observer_mask_elapsed, cairo_device_observer_mask_elapsed () +
cairo_device_observer_mask_elapsed, cairo_device_observer_mask_elapsed ()
-
cairo_device_observer_paint_elapsed, cairo_device_observer_paint_elapsed () +
cairo_device_observer_paint_elapsed, cairo_device_observer_paint_elapsed ()
-
cairo_device_observer_print, cairo_device_observer_print () +
cairo_device_observer_print, cairo_device_observer_print ()
-
cairo_device_observer_stroke_elapsed, cairo_device_observer_stroke_elapsed () +
cairo_device_observer_stroke_elapsed, cairo_device_observer_stroke_elapsed ()
-
cairo_device_reference, cairo_device_reference () +
cairo_device_reference, cairo_device_reference ()
-
cairo_device_release, cairo_device_release () +
cairo_device_release, cairo_device_release ()
-
cairo_device_set_user_data, cairo_device_set_user_data () +
cairo_device_set_user_data, cairo_device_set_user_data ()
-
cairo_device_status, cairo_device_status () +
cairo_device_status, cairo_device_status ()
-
cairo_device_t, cairo_device_t +
cairo_device_t, cairo_device_t
-
cairo_device_to_user, cairo_device_to_user () +
cairo_device_to_user, cairo_device_to_user ()
-
cairo_device_to_user_distance, cairo_device_to_user_distance () +
cairo_device_to_user_distance, cairo_device_to_user_distance ()
-
cairo_device_type_t, enum cairo_device_type_t +
cairo_device_type_t, enum cairo_device_type_t

E

-
cairo_extend_t, enum cairo_extend_t +
cairo_extend_t, enum cairo_extend_t

F

-
cairo_fill, cairo_fill () +
cairo_fill, cairo_fill ()
-
cairo_fill_extents, cairo_fill_extents () +
cairo_fill_extents, cairo_fill_extents ()
-
cairo_fill_preserve, cairo_fill_preserve () +
cairo_fill_preserve, cairo_fill_preserve ()
-
cairo_fill_rule_t, enum cairo_fill_rule_t +
cairo_fill_rule_t, enum cairo_fill_rule_t
-
cairo_filter_t, enum cairo_filter_t +
cairo_filter_t, enum cairo_filter_t
-
cairo_font_extents, cairo_font_extents () +
cairo_font_extents, cairo_font_extents ()
-
cairo_font_extents_t, cairo_font_extents_t +
cairo_font_extents_t, cairo_font_extents_t
-
cairo_font_face_destroy, cairo_font_face_destroy () +
cairo_font_face_destroy, cairo_font_face_destroy ()
-
cairo_font_face_get_reference_count, cairo_font_face_get_reference_count () +
cairo_font_face_get_reference_count, cairo_font_face_get_reference_count ()
-
cairo_font_face_get_type, cairo_font_face_get_type () +
cairo_font_face_get_type, cairo_font_face_get_type ()
-
cairo_font_face_get_user_data, cairo_font_face_get_user_data () +
cairo_font_face_get_user_data, cairo_font_face_get_user_data ()
-
cairo_font_face_reference, cairo_font_face_reference () +
cairo_font_face_reference, cairo_font_face_reference ()
-
cairo_font_face_set_user_data, cairo_font_face_set_user_data () +
cairo_font_face_set_user_data, cairo_font_face_set_user_data ()
-
cairo_font_face_status, cairo_font_face_status () +
cairo_font_face_status, cairo_font_face_status ()
-
cairo_font_face_t, cairo_font_face_t +
cairo_font_face_t, cairo_font_face_t
-
cairo_font_options_copy, cairo_font_options_copy () +
cairo_font_options_copy, cairo_font_options_copy ()
-
cairo_font_options_create, cairo_font_options_create () +
cairo_font_options_create, cairo_font_options_create ()
-
cairo_font_options_destroy, cairo_font_options_destroy () +
cairo_font_options_destroy, cairo_font_options_destroy ()
-
cairo_font_options_equal, cairo_font_options_equal () +
cairo_font_options_equal, cairo_font_options_equal ()
-
cairo_font_options_get_antialias, cairo_font_options_get_antialias () +
cairo_font_options_get_antialias, cairo_font_options_get_antialias ()
-
cairo_font_options_get_hint_metrics, cairo_font_options_get_hint_metrics () +
cairo_font_options_get_hint_metrics, cairo_font_options_get_hint_metrics ()
-
cairo_font_options_get_hint_style, cairo_font_options_get_hint_style () +
cairo_font_options_get_hint_style, cairo_font_options_get_hint_style ()
-
cairo_font_options_get_subpixel_order, cairo_font_options_get_subpixel_order () +
cairo_font_options_get_subpixel_order, cairo_font_options_get_subpixel_order ()
-
cairo_font_options_hash, cairo_font_options_hash () +
cairo_font_options_hash, cairo_font_options_hash ()
-
cairo_font_options_merge, cairo_font_options_merge () +
cairo_font_options_merge, cairo_font_options_merge ()
-
cairo_font_options_set_antialias, cairo_font_options_set_antialias () +
cairo_font_options_set_antialias, cairo_font_options_set_antialias ()
-
cairo_font_options_set_hint_metrics, cairo_font_options_set_hint_metrics () +
cairo_font_options_set_hint_metrics, cairo_font_options_set_hint_metrics ()
-
cairo_font_options_set_hint_style, cairo_font_options_set_hint_style () +
cairo_font_options_set_hint_style, cairo_font_options_set_hint_style ()
-
cairo_font_options_set_subpixel_order, cairo_font_options_set_subpixel_order () +
cairo_font_options_set_subpixel_order, cairo_font_options_set_subpixel_order ()
-
cairo_font_options_status, cairo_font_options_status () +
cairo_font_options_status, cairo_font_options_status ()
-
cairo_font_options_t, cairo_font_options_t +
cairo_font_options_t, cairo_font_options_t
-
cairo_font_slant_t, enum cairo_font_slant_t +
cairo_font_slant_t, enum cairo_font_slant_t
-
cairo_font_type_t, enum cairo_font_type_t +
cairo_font_type_t, enum cairo_font_type_t
-
cairo_font_weight_t, enum cairo_font_weight_t +
cairo_font_weight_t, enum cairo_font_weight_t
-
cairo_format_stride_for_width, cairo_format_stride_for_width () +
cairo_format_stride_for_width, cairo_format_stride_for_width ()
-
cairo_format_t, enum cairo_format_t +
cairo_format_t, enum cairo_format_t
-
cairo_ft_font_face_create_for_ft_face, cairo_ft_font_face_create_for_ft_face () +
cairo_ft_font_face_create_for_ft_face, cairo_ft_font_face_create_for_ft_face ()
-
cairo_ft_font_face_create_for_pattern, cairo_ft_font_face_create_for_pattern () +
cairo_ft_font_face_create_for_pattern, cairo_ft_font_face_create_for_pattern ()
-
cairo_ft_font_face_get_synthesize, cairo_ft_font_face_get_synthesize () +
cairo_ft_font_face_get_synthesize, cairo_ft_font_face_get_synthesize ()
-
cairo_ft_font_face_set_synthesize, cairo_ft_font_face_set_synthesize () +
cairo_ft_font_face_set_synthesize, cairo_ft_font_face_set_synthesize ()
-
cairo_ft_font_face_unset_synthesize, cairo_ft_font_face_unset_synthesize () +
cairo_ft_font_face_unset_synthesize, cairo_ft_font_face_unset_synthesize ()
-
cairo_ft_font_options_substitute, cairo_ft_font_options_substitute () +
cairo_ft_font_options_substitute, cairo_ft_font_options_substitute ()
-
cairo_ft_scaled_font_lock_face, cairo_ft_scaled_font_lock_face () +
cairo_ft_scaled_font_lock_face, cairo_ft_scaled_font_lock_face ()
-
cairo_ft_scaled_font_unlock_face, cairo_ft_scaled_font_unlock_face () +
cairo_ft_scaled_font_unlock_face, cairo_ft_scaled_font_unlock_face ()
-
cairo_ft_synthesize_t, enum cairo_ft_synthesize_t +
cairo_ft_synthesize_t, enum cairo_ft_synthesize_t

G

-
cairo_get_antialias, cairo_get_antialias () +
cairo_get_antialias, cairo_get_antialias ()
-
cairo_get_current_point, cairo_get_current_point () +
cairo_get_current_point, cairo_get_current_point ()
-
cairo_get_dash, cairo_get_dash () +
cairo_get_dash, cairo_get_dash ()
-
cairo_get_dash_count, cairo_get_dash_count () +
cairo_get_dash_count, cairo_get_dash_count ()
-
cairo_get_fill_rule, cairo_get_fill_rule () +
cairo_get_fill_rule, cairo_get_fill_rule ()
-
cairo_get_font_face, cairo_get_font_face () +
cairo_get_font_face, cairo_get_font_face ()
-
cairo_get_font_matrix, cairo_get_font_matrix () +
cairo_get_font_matrix, cairo_get_font_matrix ()
-
cairo_get_font_options, cairo_get_font_options () +
cairo_get_font_options, cairo_get_font_options ()
-
cairo_get_group_target, cairo_get_group_target () +
cairo_get_group_target, cairo_get_group_target ()
-
cairo_get_line_cap, cairo_get_line_cap () +
cairo_get_line_cap, cairo_get_line_cap ()
-
cairo_get_line_join, cairo_get_line_join () +
cairo_get_line_join, cairo_get_line_join ()
-
cairo_get_line_width, cairo_get_line_width () +
cairo_get_line_width, cairo_get_line_width ()
-
cairo_get_matrix, cairo_get_matrix () +
cairo_get_matrix, cairo_get_matrix ()
-
cairo_get_miter_limit, cairo_get_miter_limit () +
cairo_get_miter_limit, cairo_get_miter_limit ()
-
cairo_get_operator, cairo_get_operator () +
cairo_get_operator, cairo_get_operator ()
-
cairo_get_reference_count, cairo_get_reference_count () +
cairo_get_reference_count, cairo_get_reference_count ()
-
cairo_get_scaled_font, cairo_get_scaled_font () +
cairo_get_scaled_font, cairo_get_scaled_font ()
-
cairo_get_source, cairo_get_source () +
cairo_get_source, cairo_get_source ()
-
cairo_get_target, cairo_get_target () +
cairo_get_target, cairo_get_target ()
-
cairo_get_tolerance, cairo_get_tolerance () +
cairo_get_tolerance, cairo_get_tolerance ()
-
cairo_get_user_data, cairo_get_user_data () +
cairo_get_user_data, cairo_get_user_data ()
-
cairo_glyph_allocate, cairo_glyph_allocate () +
cairo_glyph_allocate, cairo_glyph_allocate ()
-
cairo_glyph_extents, cairo_glyph_extents () +
cairo_glyph_extents, cairo_glyph_extents ()
-
cairo_glyph_free, cairo_glyph_free () +
cairo_glyph_free, cairo_glyph_free ()
-
cairo_glyph_path, cairo_glyph_path () +
cairo_glyph_path, cairo_glyph_path ()
-
cairo_glyph_t, cairo_glyph_t +
cairo_glyph_t, cairo_glyph_t

H

-
cairo_has_current_point, cairo_has_current_point () +
cairo_has_current_point, cairo_has_current_point ()
-
CAIRO_HAS_FC_FONT, CAIRO_HAS_FC_FONT +
CAIRO_HAS_FC_FONT, CAIRO_HAS_FC_FONT
-
CAIRO_HAS_FT_FONT, CAIRO_HAS_FT_FONT +
CAIRO_HAS_FT_FONT, CAIRO_HAS_FT_FONT
-
CAIRO_HAS_IMAGE_SURFACE, CAIRO_HAS_IMAGE_SURFACE +
CAIRO_HAS_IMAGE_SURFACE, CAIRO_HAS_IMAGE_SURFACE
-
CAIRO_HAS_MIME_SURFACE, CAIRO_HAS_MIME_SURFACE +
CAIRO_HAS_MIME_SURFACE, CAIRO_HAS_MIME_SURFACE
-
CAIRO_HAS_PDF_SURFACE, CAIRO_HAS_PDF_SURFACE +
CAIRO_HAS_PDF_SURFACE, CAIRO_HAS_PDF_SURFACE
-
CAIRO_HAS_PNG_FUNCTIONS, CAIRO_HAS_PNG_FUNCTIONS +
CAIRO_HAS_PNG_FUNCTIONS, CAIRO_HAS_PNG_FUNCTIONS
-
CAIRO_HAS_PS_SURFACE, CAIRO_HAS_PS_SURFACE +
CAIRO_HAS_PS_SURFACE, CAIRO_HAS_PS_SURFACE
-
CAIRO_HAS_QUARTZ_FONT, CAIRO_HAS_QUARTZ_FONT +
CAIRO_HAS_QUARTZ_FONT, CAIRO_HAS_QUARTZ_FONT
-
CAIRO_HAS_QUARTZ_SURFACE, CAIRO_HAS_QUARTZ_SURFACE +
CAIRO_HAS_QUARTZ_SURFACE, CAIRO_HAS_QUARTZ_SURFACE
-
CAIRO_HAS_RECORDING_SURFACE, CAIRO_HAS_RECORDING_SURFACE +
CAIRO_HAS_RECORDING_SURFACE, CAIRO_HAS_RECORDING_SURFACE
-
CAIRO_HAS_SCRIPT_SURFACE, CAIRO_HAS_SCRIPT_SURFACE +
CAIRO_HAS_SCRIPT_SURFACE, CAIRO_HAS_SCRIPT_SURFACE
-
CAIRO_HAS_SVG_SURFACE, CAIRO_HAS_SVG_SURFACE +
CAIRO_HAS_SVG_SURFACE, CAIRO_HAS_SVG_SURFACE
-
CAIRO_HAS_USER_FONT, CAIRO_HAS_USER_FONT +
CAIRO_HAS_USER_FONT, CAIRO_HAS_USER_FONT
-
CAIRO_HAS_WIN32_FONT, CAIRO_HAS_WIN32_FONT +
CAIRO_HAS_WIN32_FONT, CAIRO_HAS_WIN32_FONT
-
CAIRO_HAS_WIN32_SURFACE, CAIRO_HAS_WIN32_SURFACE +
CAIRO_HAS_WIN32_SURFACE, CAIRO_HAS_WIN32_SURFACE
-
CAIRO_HAS_XCB_SHM_FUNCTIONS, CAIRO_HAS_XCB_SHM_FUNCTIONS +
CAIRO_HAS_XCB_SHM_FUNCTIONS, CAIRO_HAS_XCB_SHM_FUNCTIONS
-
CAIRO_HAS_XCB_SURFACE, CAIRO_HAS_XCB_SURFACE +
CAIRO_HAS_XCB_SURFACE, CAIRO_HAS_XCB_SURFACE
-
CAIRO_HAS_XLIB_SURFACE, CAIRO_HAS_XLIB_SURFACE +
CAIRO_HAS_XLIB_SURFACE, CAIRO_HAS_XLIB_SURFACE
-
CAIRO_HAS_XLIB_XRENDER_SURFACE, CAIRO_HAS_XLIB_XRENDER_SURFACE +
CAIRO_HAS_XLIB_XRENDER_SURFACE, CAIRO_HAS_XLIB_XRENDER_SURFACE
-
cairo_hint_metrics_t, enum cairo_hint_metrics_t +
cairo_hint_metrics_t, enum cairo_hint_metrics_t
-
cairo_hint_style_t, enum cairo_hint_style_t +
cairo_hint_style_t, enum cairo_hint_style_t

I

-
cairo_identity_matrix, cairo_identity_matrix () +
cairo_identity_matrix, cairo_identity_matrix ()
-
cairo_image_surface_create, cairo_image_surface_create () +
cairo_image_surface_create, cairo_image_surface_create ()
-
cairo_image_surface_create_for_data, cairo_image_surface_create_for_data () +
cairo_image_surface_create_for_data, cairo_image_surface_create_for_data ()
-
cairo_image_surface_create_from_png, cairo_image_surface_create_from_png () +
cairo_image_surface_create_from_png, cairo_image_surface_create_from_png ()
-
cairo_image_surface_create_from_png_stream, cairo_image_surface_create_from_png_stream () +
cairo_image_surface_create_from_png_stream, cairo_image_surface_create_from_png_stream ()
-
cairo_image_surface_get_data, cairo_image_surface_get_data () +
cairo_image_surface_get_data, cairo_image_surface_get_data ()
-
cairo_image_surface_get_format, cairo_image_surface_get_format () +
cairo_image_surface_get_format, cairo_image_surface_get_format ()
-
cairo_image_surface_get_height, cairo_image_surface_get_height () +
cairo_image_surface_get_height, cairo_image_surface_get_height ()
-
cairo_image_surface_get_stride, cairo_image_surface_get_stride () +
cairo_image_surface_get_stride, cairo_image_surface_get_stride ()
-
cairo_image_surface_get_width, cairo_image_surface_get_width () +
cairo_image_surface_get_width, cairo_image_surface_get_width ()
-
cairo_in_clip, cairo_in_clip () +
cairo_in_clip, cairo_in_clip ()
-
cairo_in_fill, cairo_in_fill () +
cairo_in_fill, cairo_in_fill ()
-
cairo_in_stroke, cairo_in_stroke () +
cairo_in_stroke, cairo_in_stroke ()

L

-
cairo_line_cap_t, enum cairo_line_cap_t +
cairo_line_cap_t, enum cairo_line_cap_t
-
cairo_line_join_t, enum cairo_line_join_t +
cairo_line_join_t, enum cairo_line_join_t
-
cairo_line_to, cairo_line_to () +
cairo_line_to, cairo_line_to ()

M

-
cairo_mask, cairo_mask () +
cairo_mask, cairo_mask ()
-
cairo_mask_surface, cairo_mask_surface () +
cairo_mask_surface, cairo_mask_surface ()
-
cairo_matrix_init, cairo_matrix_init () +
cairo_matrix_init, cairo_matrix_init ()
-
cairo_matrix_init_identity, cairo_matrix_init_identity () +
cairo_matrix_init_identity, cairo_matrix_init_identity ()
-
cairo_matrix_init_rotate, cairo_matrix_init_rotate () +
cairo_matrix_init_rotate, cairo_matrix_init_rotate ()
-
cairo_matrix_init_scale, cairo_matrix_init_scale () +
cairo_matrix_init_scale, cairo_matrix_init_scale ()
-
cairo_matrix_init_translate, cairo_matrix_init_translate () +
cairo_matrix_init_translate, cairo_matrix_init_translate ()
-
cairo_matrix_invert, cairo_matrix_invert () +
cairo_matrix_invert, cairo_matrix_invert ()
-
cairo_matrix_multiply, cairo_matrix_multiply () +
cairo_matrix_multiply, cairo_matrix_multiply ()
-
cairo_matrix_rotate, cairo_matrix_rotate () +
cairo_matrix_rotate, cairo_matrix_rotate ()
-
cairo_matrix_scale, cairo_matrix_scale () +
cairo_matrix_scale, cairo_matrix_scale ()
-
cairo_matrix_t, cairo_matrix_t +
cairo_matrix_t, cairo_matrix_t
-
cairo_matrix_transform_distance, cairo_matrix_transform_distance () +
cairo_matrix_transform_distance, cairo_matrix_transform_distance ()
-
cairo_matrix_transform_point, cairo_matrix_transform_point () +
cairo_matrix_transform_point, cairo_matrix_transform_point ()
-
cairo_matrix_translate, cairo_matrix_translate () +
cairo_matrix_translate, cairo_matrix_translate ()
-
cairo_mesh_pattern_begin_patch, cairo_mesh_pattern_begin_patch () +
cairo_mesh_pattern_begin_patch, cairo_mesh_pattern_begin_patch ()
-
cairo_mesh_pattern_curve_to, cairo_mesh_pattern_curve_to () +
cairo_mesh_pattern_curve_to, cairo_mesh_pattern_curve_to ()
-
cairo_mesh_pattern_end_patch, cairo_mesh_pattern_end_patch () +
cairo_mesh_pattern_end_patch, cairo_mesh_pattern_end_patch ()
-
cairo_mesh_pattern_get_control_point, cairo_mesh_pattern_get_control_point () +
cairo_mesh_pattern_get_control_point, cairo_mesh_pattern_get_control_point ()
-
cairo_mesh_pattern_get_corner_color_rgba, cairo_mesh_pattern_get_corner_color_rgba () +
cairo_mesh_pattern_get_corner_color_rgba, cairo_mesh_pattern_get_corner_color_rgba ()
-
cairo_mesh_pattern_get_patch_count, cairo_mesh_pattern_get_patch_count () +
cairo_mesh_pattern_get_patch_count, cairo_mesh_pattern_get_patch_count ()
-
cairo_mesh_pattern_get_path, cairo_mesh_pattern_get_path () +
cairo_mesh_pattern_get_path, cairo_mesh_pattern_get_path ()
-
cairo_mesh_pattern_line_to, cairo_mesh_pattern_line_to () +
cairo_mesh_pattern_line_to, cairo_mesh_pattern_line_to ()
-
cairo_mesh_pattern_move_to, cairo_mesh_pattern_move_to () +
cairo_mesh_pattern_move_to, cairo_mesh_pattern_move_to ()
-
cairo_mesh_pattern_set_control_point, cairo_mesh_pattern_set_control_point () +
cairo_mesh_pattern_set_control_point, cairo_mesh_pattern_set_control_point ()
-
cairo_mesh_pattern_set_corner_color_rgb, cairo_mesh_pattern_set_corner_color_rgb () +
cairo_mesh_pattern_set_corner_color_rgb, cairo_mesh_pattern_set_corner_color_rgb ()
-
cairo_mesh_pattern_set_corner_color_rgba, cairo_mesh_pattern_set_corner_color_rgba () +
cairo_mesh_pattern_set_corner_color_rgba, cairo_mesh_pattern_set_corner_color_rgba ()
-
CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX +
CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX
-
CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS +
CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS
-
CAIRO_MIME_TYPE_EPS, CAIRO_MIME_TYPE_EPS +
CAIRO_MIME_TYPE_EPS, CAIRO_MIME_TYPE_EPS
-
CAIRO_MIME_TYPE_EPS_PARAMS, CAIRO_MIME_TYPE_EPS_PARAMS +
CAIRO_MIME_TYPE_EPS_PARAMS, CAIRO_MIME_TYPE_EPS_PARAMS
-
CAIRO_MIME_TYPE_JBIG2, CAIRO_MIME_TYPE_JBIG2 +
CAIRO_MIME_TYPE_JBIG2, CAIRO_MIME_TYPE_JBIG2
-
CAIRO_MIME_TYPE_JBIG2_GLOBAL, CAIRO_MIME_TYPE_JBIG2_GLOBAL +
CAIRO_MIME_TYPE_JBIG2_GLOBAL, CAIRO_MIME_TYPE_JBIG2_GLOBAL
-
CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID +
CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID
-
CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_JP2 +
CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_JP2
-
CAIRO_MIME_TYPE_JPEG, CAIRO_MIME_TYPE_JPEG +
CAIRO_MIME_TYPE_JPEG, CAIRO_MIME_TYPE_JPEG
-
CAIRO_MIME_TYPE_PNG, CAIRO_MIME_TYPE_PNG +
CAIRO_MIME_TYPE_PNG, CAIRO_MIME_TYPE_PNG
-
CAIRO_MIME_TYPE_UNIQUE_ID, CAIRO_MIME_TYPE_UNIQUE_ID +
CAIRO_MIME_TYPE_UNIQUE_ID, CAIRO_MIME_TYPE_UNIQUE_ID
-
CAIRO_MIME_TYPE_URI, CAIRO_MIME_TYPE_URI +
CAIRO_MIME_TYPE_URI, CAIRO_MIME_TYPE_URI
-
cairo_move_to, cairo_move_to () +
cairo_move_to, cairo_move_to ()

N

-
cairo_new_path, cairo_new_path () +
cairo_new_path, cairo_new_path ()
-
cairo_new_sub_path, cairo_new_sub_path () +
cairo_new_sub_path, cairo_new_sub_path ()

O

-
cairo_operator_t, enum cairo_operator_t +
cairo_operator_t, enum cairo_operator_t

P

-
cairo_paint, cairo_paint () +
cairo_paint, cairo_paint ()
-
cairo_paint_with_alpha, cairo_paint_with_alpha () +
cairo_paint_with_alpha, cairo_paint_with_alpha ()
-
cairo_path_data_t, union cairo_path_data_t +
cairo_path_data_t, union cairo_path_data_t
-
cairo_path_data_type_t, enum cairo_path_data_type_t +
cairo_path_data_type_t, enum cairo_path_data_type_t
-
cairo_path_destroy, cairo_path_destroy () +
cairo_path_destroy, cairo_path_destroy ()
-
cairo_path_extents, cairo_path_extents () +
cairo_path_extents, cairo_path_extents ()
-
cairo_path_t, cairo_path_t +
cairo_path_t, cairo_path_t
-
cairo_pattern_add_color_stop_rgb, cairo_pattern_add_color_stop_rgb () +
cairo_pattern_add_color_stop_rgb, cairo_pattern_add_color_stop_rgb ()
-
cairo_pattern_add_color_stop_rgba, cairo_pattern_add_color_stop_rgba () +
cairo_pattern_add_color_stop_rgba, cairo_pattern_add_color_stop_rgba ()
-
cairo_pattern_create_for_surface, cairo_pattern_create_for_surface () +
cairo_pattern_create_for_surface, cairo_pattern_create_for_surface ()
-
cairo_pattern_create_linear, cairo_pattern_create_linear () +
cairo_pattern_create_linear, cairo_pattern_create_linear ()
-
cairo_pattern_create_mesh, cairo_pattern_create_mesh () +
cairo_pattern_create_mesh, cairo_pattern_create_mesh ()
-
cairo_pattern_create_radial, cairo_pattern_create_radial () +
cairo_pattern_create_radial, cairo_pattern_create_radial ()
-
cairo_pattern_create_raster_source, cairo_pattern_create_raster_source () +
cairo_pattern_create_raster_source, cairo_pattern_create_raster_source ()
-
cairo_pattern_create_rgb, cairo_pattern_create_rgb () +
cairo_pattern_create_rgb, cairo_pattern_create_rgb ()
-
cairo_pattern_create_rgba, cairo_pattern_create_rgba () +
cairo_pattern_create_rgba, cairo_pattern_create_rgba ()
-
cairo_pattern_destroy, cairo_pattern_destroy () +
cairo_pattern_destroy, cairo_pattern_destroy ()
-
cairo_pattern_get_color_stop_count, cairo_pattern_get_color_stop_count () +
cairo_pattern_get_color_stop_count, cairo_pattern_get_color_stop_count ()
-
cairo_pattern_get_color_stop_rgba, cairo_pattern_get_color_stop_rgba () +
cairo_pattern_get_color_stop_rgba, cairo_pattern_get_color_stop_rgba ()
-
cairo_pattern_get_extend, cairo_pattern_get_extend () +
cairo_pattern_get_extend, cairo_pattern_get_extend ()
-
cairo_pattern_get_filter, cairo_pattern_get_filter () +
cairo_pattern_get_filter, cairo_pattern_get_filter ()
-
cairo_pattern_get_linear_points, cairo_pattern_get_linear_points () +
cairo_pattern_get_linear_points, cairo_pattern_get_linear_points ()
-
cairo_pattern_get_matrix, cairo_pattern_get_matrix () +
cairo_pattern_get_matrix, cairo_pattern_get_matrix ()
-
cairo_pattern_get_radial_circles, cairo_pattern_get_radial_circles () +
cairo_pattern_get_radial_circles, cairo_pattern_get_radial_circles ()
-
cairo_pattern_get_reference_count, cairo_pattern_get_reference_count () +
cairo_pattern_get_reference_count, cairo_pattern_get_reference_count ()
-
cairo_pattern_get_rgba, cairo_pattern_get_rgba () +
cairo_pattern_get_rgba, cairo_pattern_get_rgba ()
-
cairo_pattern_get_surface, cairo_pattern_get_surface () +
cairo_pattern_get_surface, cairo_pattern_get_surface ()
-
cairo_pattern_get_type, cairo_pattern_get_type () +
cairo_pattern_get_type, cairo_pattern_get_type ()
-
cairo_pattern_get_user_data, cairo_pattern_get_user_data () +
cairo_pattern_get_user_data, cairo_pattern_get_user_data ()
-
cairo_pattern_reference, cairo_pattern_reference () +
cairo_pattern_reference, cairo_pattern_reference ()
-
cairo_pattern_set_extend, cairo_pattern_set_extend () +
cairo_pattern_set_extend, cairo_pattern_set_extend ()
-
cairo_pattern_set_filter, cairo_pattern_set_filter () +
cairo_pattern_set_filter, cairo_pattern_set_filter ()
-
cairo_pattern_set_matrix, cairo_pattern_set_matrix () +
cairo_pattern_set_matrix, cairo_pattern_set_matrix ()
-
cairo_pattern_set_user_data, cairo_pattern_set_user_data () +
cairo_pattern_set_user_data, cairo_pattern_set_user_data ()
-
cairo_pattern_status, cairo_pattern_status () +
cairo_pattern_status, cairo_pattern_status ()
-
cairo_pattern_t, cairo_pattern_t +
cairo_pattern_t, cairo_pattern_t
-
cairo_pattern_type_t, enum cairo_pattern_type_t +
cairo_pattern_type_t, enum cairo_pattern_type_t
-
cairo_pdf_get_versions, cairo_pdf_get_versions () +
cairo_pdf_get_versions, cairo_pdf_get_versions ()
-
cairo_pdf_metadata_t, enum cairo_pdf_metadata_t +
cairo_pdf_metadata_t, enum cairo_pdf_metadata_t
-
cairo_pdf_outline_flags_t, enum cairo_pdf_outline_flags_t +
cairo_pdf_outline_flags_t, enum cairo_pdf_outline_flags_t
-
CAIRO_PDF_OUTLINE_ROOT, CAIRO_PDF_OUTLINE_ROOT +
CAIRO_PDF_OUTLINE_ROOT, CAIRO_PDF_OUTLINE_ROOT
-
cairo_pdf_surface_add_outline, cairo_pdf_surface_add_outline () +
cairo_pdf_surface_add_outline, cairo_pdf_surface_add_outline ()
-
cairo_pdf_surface_create, cairo_pdf_surface_create () +
cairo_pdf_surface_create, cairo_pdf_surface_create ()
-
cairo_pdf_surface_create_for_stream, cairo_pdf_surface_create_for_stream () +
cairo_pdf_surface_create_for_stream, cairo_pdf_surface_create_for_stream ()
-
cairo_pdf_surface_restrict_to_version, cairo_pdf_surface_restrict_to_version () +
cairo_pdf_surface_restrict_to_version, cairo_pdf_surface_restrict_to_version ()
-
cairo_pdf_surface_set_metadata, cairo_pdf_surface_set_metadata () +
cairo_pdf_surface_set_metadata, cairo_pdf_surface_set_metadata ()
-
cairo_pdf_surface_set_page_label, cairo_pdf_surface_set_page_label () +
cairo_pdf_surface_set_page_label, cairo_pdf_surface_set_page_label ()
-
cairo_pdf_surface_set_size, cairo_pdf_surface_set_size () +
cairo_pdf_surface_set_size, cairo_pdf_surface_set_size ()
-
cairo_pdf_surface_set_thumbnail_size, cairo_pdf_surface_set_thumbnail_size () +
cairo_pdf_surface_set_thumbnail_size, cairo_pdf_surface_set_thumbnail_size ()
-
cairo_pdf_version_t, enum cairo_pdf_version_t +
cairo_pdf_version_t, enum cairo_pdf_version_t
-
cairo_pdf_version_to_string, cairo_pdf_version_to_string () +
cairo_pdf_version_to_string, cairo_pdf_version_to_string ()
-
cairo_pop_group, cairo_pop_group () +
cairo_pop_group, cairo_pop_group ()
-
cairo_pop_group_to_source, cairo_pop_group_to_source () +
cairo_pop_group_to_source, cairo_pop_group_to_source ()
-
cairo_ps_get_levels, cairo_ps_get_levels () +
cairo_ps_get_levels, cairo_ps_get_levels ()
-
cairo_ps_level_t, enum cairo_ps_level_t +
cairo_ps_level_t, enum cairo_ps_level_t
-
cairo_ps_level_to_string, cairo_ps_level_to_string () +
cairo_ps_level_to_string, cairo_ps_level_to_string ()
-
cairo_ps_surface_create, cairo_ps_surface_create () +
cairo_ps_surface_create, cairo_ps_surface_create ()
-
cairo_ps_surface_create_for_stream, cairo_ps_surface_create_for_stream () +
cairo_ps_surface_create_for_stream, cairo_ps_surface_create_for_stream ()
-
cairo_ps_surface_dsc_begin_page_setup, cairo_ps_surface_dsc_begin_page_setup () +
cairo_ps_surface_dsc_begin_page_setup, cairo_ps_surface_dsc_begin_page_setup ()
-
cairo_ps_surface_dsc_begin_setup, cairo_ps_surface_dsc_begin_setup () +
cairo_ps_surface_dsc_begin_setup, cairo_ps_surface_dsc_begin_setup ()
-
cairo_ps_surface_dsc_comment, cairo_ps_surface_dsc_comment () +
cairo_ps_surface_dsc_comment, cairo_ps_surface_dsc_comment ()
-
cairo_ps_surface_get_eps, cairo_ps_surface_get_eps () +
cairo_ps_surface_get_eps, cairo_ps_surface_get_eps ()
-
cairo_ps_surface_restrict_to_level, cairo_ps_surface_restrict_to_level () +
cairo_ps_surface_restrict_to_level, cairo_ps_surface_restrict_to_level ()
-
cairo_ps_surface_set_eps, cairo_ps_surface_set_eps () +
cairo_ps_surface_set_eps, cairo_ps_surface_set_eps ()
-
cairo_ps_surface_set_size, cairo_ps_surface_set_size () +
cairo_ps_surface_set_size, cairo_ps_surface_set_size ()
-
cairo_push_group, cairo_push_group () +
cairo_push_group, cairo_push_group ()
-
cairo_push_group_with_content, cairo_push_group_with_content () +
cairo_push_group_with_content, cairo_push_group_with_content ()

Q

-
cairo_quartz_font_face_create_for_atsu_font_id, cairo_quartz_font_face_create_for_atsu_font_id () +
cairo_quartz_font_face_create_for_atsu_font_id, cairo_quartz_font_face_create_for_atsu_font_id ()
-
cairo_quartz_font_face_create_for_cgfont, cairo_quartz_font_face_create_for_cgfont () +
cairo_quartz_font_face_create_for_cgfont, cairo_quartz_font_face_create_for_cgfont ()
-
cairo_quartz_surface_create, cairo_quartz_surface_create () +
cairo_quartz_surface_create, cairo_quartz_surface_create ()
-
cairo_quartz_surface_create_for_cg_context, cairo_quartz_surface_create_for_cg_context () +
cairo_quartz_surface_create_for_cg_context, cairo_quartz_surface_create_for_cg_context ()
-
cairo_quartz_surface_get_cg_context, cairo_quartz_surface_get_cg_context () +
cairo_quartz_surface_get_cg_context, cairo_quartz_surface_get_cg_context ()

R

-
cairo_raster_source_acquire_func_t, cairo_raster_source_acquire_func_t () +
cairo_raster_source_acquire_func_t, cairo_raster_source_acquire_func_t ()
-
cairo_raster_source_copy_func_t, cairo_raster_source_copy_func_t () +
cairo_raster_source_copy_func_t, cairo_raster_source_copy_func_t ()
-
cairo_raster_source_finish_func_t, cairo_raster_source_finish_func_t () +
cairo_raster_source_finish_func_t, cairo_raster_source_finish_func_t ()
-
cairo_raster_source_pattern_get_acquire, cairo_raster_source_pattern_get_acquire () +
cairo_raster_source_pattern_get_acquire, cairo_raster_source_pattern_get_acquire ()
-
cairo_raster_source_pattern_get_callback_data, cairo_raster_source_pattern_get_callback_data () +
cairo_raster_source_pattern_get_callback_data, cairo_raster_source_pattern_get_callback_data ()
-
cairo_raster_source_pattern_get_copy, cairo_raster_source_pattern_get_copy () +
cairo_raster_source_pattern_get_copy, cairo_raster_source_pattern_get_copy ()
-
cairo_raster_source_pattern_get_finish, cairo_raster_source_pattern_get_finish () +
cairo_raster_source_pattern_get_finish, cairo_raster_source_pattern_get_finish ()
-
cairo_raster_source_pattern_get_snapshot, cairo_raster_source_pattern_get_snapshot () +
cairo_raster_source_pattern_get_snapshot, cairo_raster_source_pattern_get_snapshot ()
-
cairo_raster_source_pattern_set_acquire, cairo_raster_source_pattern_set_acquire () +
cairo_raster_source_pattern_set_acquire, cairo_raster_source_pattern_set_acquire ()
-
cairo_raster_source_pattern_set_callback_data, cairo_raster_source_pattern_set_callback_data () +
cairo_raster_source_pattern_set_callback_data, cairo_raster_source_pattern_set_callback_data ()
-
cairo_raster_source_pattern_set_copy, cairo_raster_source_pattern_set_copy () +
cairo_raster_source_pattern_set_copy, cairo_raster_source_pattern_set_copy ()
-
cairo_raster_source_pattern_set_finish, cairo_raster_source_pattern_set_finish () +
cairo_raster_source_pattern_set_finish, cairo_raster_source_pattern_set_finish ()
-
cairo_raster_source_pattern_set_snapshot, cairo_raster_source_pattern_set_snapshot () +
cairo_raster_source_pattern_set_snapshot, cairo_raster_source_pattern_set_snapshot ()
-
cairo_raster_source_release_func_t, cairo_raster_source_release_func_t () +
cairo_raster_source_release_func_t, cairo_raster_source_release_func_t ()
-
cairo_raster_source_snapshot_func_t, cairo_raster_source_snapshot_func_t () +
cairo_raster_source_snapshot_func_t, cairo_raster_source_snapshot_func_t ()
-
cairo_read_func_t, cairo_read_func_t () +
cairo_read_func_t, cairo_read_func_t ()
-
cairo_recording_surface_create, cairo_recording_surface_create () +
cairo_recording_surface_create, cairo_recording_surface_create ()
-
cairo_recording_surface_get_extents, cairo_recording_surface_get_extents () +
cairo_recording_surface_get_extents, cairo_recording_surface_get_extents ()
-
cairo_recording_surface_ink_extents, cairo_recording_surface_ink_extents () +
cairo_recording_surface_ink_extents, cairo_recording_surface_ink_extents ()
-
cairo_rectangle, cairo_rectangle () +
cairo_rectangle, cairo_rectangle ()
-
cairo_rectangle_int_t, cairo_rectangle_int_t +
cairo_rectangle_int_t, cairo_rectangle_int_t
-
cairo_rectangle_list_destroy, cairo_rectangle_list_destroy () +
cairo_rectangle_list_destroy, cairo_rectangle_list_destroy ()
-
cairo_rectangle_list_t, cairo_rectangle_list_t +
cairo_rectangle_list_t, cairo_rectangle_list_t
-
cairo_rectangle_t, cairo_rectangle_t +
cairo_rectangle_t, cairo_rectangle_t
-
cairo_reference, cairo_reference () +
cairo_reference, cairo_reference ()
-
cairo_region_contains_point, cairo_region_contains_point () +
cairo_region_contains_point, cairo_region_contains_point ()
-
cairo_region_contains_rectangle, cairo_region_contains_rectangle () +
cairo_region_contains_rectangle, cairo_region_contains_rectangle ()
-
cairo_region_copy, cairo_region_copy () +
cairo_region_copy, cairo_region_copy ()
-
cairo_region_create, cairo_region_create () +
cairo_region_create, cairo_region_create ()
-
cairo_region_create_rectangle, cairo_region_create_rectangle () +
cairo_region_create_rectangle, cairo_region_create_rectangle ()
-
cairo_region_create_rectangles, cairo_region_create_rectangles () +
cairo_region_create_rectangles, cairo_region_create_rectangles ()
-
cairo_region_destroy, cairo_region_destroy () +
cairo_region_destroy, cairo_region_destroy ()
-
cairo_region_equal, cairo_region_equal () +
cairo_region_equal, cairo_region_equal ()
-
cairo_region_get_extents, cairo_region_get_extents () +
cairo_region_get_extents, cairo_region_get_extents ()
-
cairo_region_get_rectangle, cairo_region_get_rectangle () +
cairo_region_get_rectangle, cairo_region_get_rectangle ()
-
cairo_region_intersect, cairo_region_intersect () +
cairo_region_intersect, cairo_region_intersect ()
-
cairo_region_intersect_rectangle, cairo_region_intersect_rectangle () +
cairo_region_intersect_rectangle, cairo_region_intersect_rectangle ()
-
cairo_region_is_empty, cairo_region_is_empty () +
cairo_region_is_empty, cairo_region_is_empty ()
-
cairo_region_num_rectangles, cairo_region_num_rectangles () +
cairo_region_num_rectangles, cairo_region_num_rectangles ()
-
cairo_region_overlap_t, enum cairo_region_overlap_t +
cairo_region_overlap_t, enum cairo_region_overlap_t
-
cairo_region_reference, cairo_region_reference () +
cairo_region_reference, cairo_region_reference ()
-
cairo_region_status, cairo_region_status () +
cairo_region_status, cairo_region_status ()
-
cairo_region_subtract, cairo_region_subtract () +
cairo_region_subtract, cairo_region_subtract ()
-
cairo_region_subtract_rectangle, cairo_region_subtract_rectangle () +
cairo_region_subtract_rectangle, cairo_region_subtract_rectangle ()
-
cairo_region_t, cairo_region_t +
cairo_region_t, cairo_region_t
-
cairo_region_translate, cairo_region_translate () +
cairo_region_translate, cairo_region_translate ()
-
cairo_region_union, cairo_region_union () +
cairo_region_union, cairo_region_union ()
-
cairo_region_union_rectangle, cairo_region_union_rectangle () +
cairo_region_union_rectangle, cairo_region_union_rectangle ()
-
cairo_region_xor, cairo_region_xor () +
cairo_region_xor, cairo_region_xor ()
-
cairo_region_xor_rectangle, cairo_region_xor_rectangle () +
cairo_region_xor_rectangle, cairo_region_xor_rectangle ()
-
cairo_rel_curve_to, cairo_rel_curve_to () +
cairo_rel_curve_to, cairo_rel_curve_to ()
-
cairo_rel_line_to, cairo_rel_line_to () +
cairo_rel_line_to, cairo_rel_line_to ()
-
cairo_rel_move_to, cairo_rel_move_to () +
cairo_rel_move_to, cairo_rel_move_to ()
-
cairo_reset_clip, cairo_reset_clip () +
cairo_reset_clip, cairo_reset_clip ()
-
cairo_restore, cairo_restore () +
cairo_restore, cairo_restore ()
-
cairo_rotate, cairo_rotate () +
cairo_rotate, cairo_rotate ()

S

-
cairo_save, cairo_save () +
cairo_save, cairo_save ()
-
cairo_scale, cairo_scale () +
cairo_scale, cairo_scale ()
-
cairo_scaled_font_create, cairo_scaled_font_create () +
cairo_scaled_font_create, cairo_scaled_font_create ()
-
cairo_scaled_font_destroy, cairo_scaled_font_destroy () +
cairo_scaled_font_destroy, cairo_scaled_font_destroy ()
-
cairo_scaled_font_extents, cairo_scaled_font_extents () +
cairo_scaled_font_extents, cairo_scaled_font_extents ()
-
cairo_scaled_font_get_ctm, cairo_scaled_font_get_ctm () +
cairo_scaled_font_get_ctm, cairo_scaled_font_get_ctm ()
-
cairo_scaled_font_get_font_face, cairo_scaled_font_get_font_face () +
cairo_scaled_font_get_font_face, cairo_scaled_font_get_font_face ()
-
cairo_scaled_font_get_font_matrix, cairo_scaled_font_get_font_matrix () +
cairo_scaled_font_get_font_matrix, cairo_scaled_font_get_font_matrix ()
-
cairo_scaled_font_get_font_options, cairo_scaled_font_get_font_options () +
cairo_scaled_font_get_font_options, cairo_scaled_font_get_font_options ()
-
cairo_scaled_font_get_reference_count, cairo_scaled_font_get_reference_count () +
cairo_scaled_font_get_reference_count, cairo_scaled_font_get_reference_count ()
-
cairo_scaled_font_get_scale_matrix, cairo_scaled_font_get_scale_matrix () +
cairo_scaled_font_get_scale_matrix, cairo_scaled_font_get_scale_matrix ()
-
cairo_scaled_font_get_type, cairo_scaled_font_get_type () +
cairo_scaled_font_get_type, cairo_scaled_font_get_type ()
-
cairo_scaled_font_get_user_data, cairo_scaled_font_get_user_data () +
cairo_scaled_font_get_user_data, cairo_scaled_font_get_user_data ()
-
cairo_scaled_font_glyph_extents, cairo_scaled_font_glyph_extents () +
cairo_scaled_font_glyph_extents, cairo_scaled_font_glyph_extents ()
-
cairo_scaled_font_reference, cairo_scaled_font_reference () +
cairo_scaled_font_reference, cairo_scaled_font_reference ()
-
cairo_scaled_font_set_user_data, cairo_scaled_font_set_user_data () +
cairo_scaled_font_set_user_data, cairo_scaled_font_set_user_data ()
-
cairo_scaled_font_status, cairo_scaled_font_status () +
cairo_scaled_font_status, cairo_scaled_font_status ()
-
cairo_scaled_font_t, cairo_scaled_font_t +
cairo_scaled_font_t, cairo_scaled_font_t
-
cairo_scaled_font_text_extents, cairo_scaled_font_text_extents () +
cairo_scaled_font_text_extents, cairo_scaled_font_text_extents ()
-
cairo_scaled_font_text_to_glyphs, cairo_scaled_font_text_to_glyphs () +
cairo_scaled_font_text_to_glyphs, cairo_scaled_font_text_to_glyphs ()
-
cairo_script_create, cairo_script_create () +
cairo_script_create, cairo_script_create ()
-
cairo_script_create_for_stream, cairo_script_create_for_stream () +
cairo_script_create_for_stream, cairo_script_create_for_stream ()
-
cairo_script_from_recording_surface, cairo_script_from_recording_surface () +
cairo_script_from_recording_surface, cairo_script_from_recording_surface ()
-
cairo_script_get_mode, cairo_script_get_mode () +
cairo_script_get_mode, cairo_script_get_mode ()
-
cairo_script_mode_t, enum cairo_script_mode_t +
cairo_script_mode_t, enum cairo_script_mode_t
-
cairo_script_set_mode, cairo_script_set_mode () +
cairo_script_set_mode, cairo_script_set_mode ()
-
cairo_script_surface_create, cairo_script_surface_create () +
cairo_script_surface_create, cairo_script_surface_create ()
-
cairo_script_surface_create_for_target, cairo_script_surface_create_for_target () +
cairo_script_surface_create_for_target, cairo_script_surface_create_for_target ()
-
cairo_script_write_comment, cairo_script_write_comment () +
cairo_script_write_comment, cairo_script_write_comment ()
-
cairo_select_font_face, cairo_select_font_face () +
cairo_select_font_face, cairo_select_font_face ()
-
cairo_set_antialias, cairo_set_antialias () +
cairo_set_antialias, cairo_set_antialias ()
-
cairo_set_dash, cairo_set_dash () +
cairo_set_dash, cairo_set_dash ()
-
cairo_set_fill_rule, cairo_set_fill_rule () +
cairo_set_fill_rule, cairo_set_fill_rule ()
-
cairo_set_font_face, cairo_set_font_face () +
cairo_set_font_face, cairo_set_font_face ()
-
cairo_set_font_matrix, cairo_set_font_matrix () +
cairo_set_font_matrix, cairo_set_font_matrix ()
-
cairo_set_font_options, cairo_set_font_options () +
cairo_set_font_options, cairo_set_font_options ()
-
cairo_set_font_size, cairo_set_font_size () +
cairo_set_font_size, cairo_set_font_size ()
-
cairo_set_line_cap, cairo_set_line_cap () +
cairo_set_line_cap, cairo_set_line_cap ()
-
cairo_set_line_join, cairo_set_line_join () +
cairo_set_line_join, cairo_set_line_join ()
-
cairo_set_line_width, cairo_set_line_width () +
cairo_set_line_width, cairo_set_line_width ()
-
cairo_set_matrix, cairo_set_matrix () +
cairo_set_matrix, cairo_set_matrix ()
-
cairo_set_miter_limit, cairo_set_miter_limit () +
cairo_set_miter_limit, cairo_set_miter_limit ()
-
cairo_set_operator, cairo_set_operator () +
cairo_set_operator, cairo_set_operator ()
-
cairo_set_scaled_font, cairo_set_scaled_font () +
cairo_set_scaled_font, cairo_set_scaled_font ()
-
cairo_set_source, cairo_set_source () +
cairo_set_source, cairo_set_source ()
-
cairo_set_source_rgb, cairo_set_source_rgb () +
cairo_set_source_rgb, cairo_set_source_rgb ()
-
cairo_set_source_rgba, cairo_set_source_rgba () +
cairo_set_source_rgba, cairo_set_source_rgba ()
-
cairo_set_source_surface, cairo_set_source_surface () +
cairo_set_source_surface, cairo_set_source_surface ()
-
cairo_set_tolerance, cairo_set_tolerance () +
cairo_set_tolerance, cairo_set_tolerance ()
-
cairo_set_user_data, cairo_set_user_data () +
cairo_set_user_data, cairo_set_user_data ()
-
cairo_show_glyphs, cairo_show_glyphs () +
cairo_show_glyphs, cairo_show_glyphs ()
-
cairo_show_page, cairo_show_page () +
cairo_show_page, cairo_show_page ()
-
cairo_show_text, cairo_show_text () +
cairo_show_text, cairo_show_text ()
-
cairo_show_text_glyphs, cairo_show_text_glyphs () +
cairo_show_text_glyphs, cairo_show_text_glyphs ()
-
cairo_status, cairo_status () +
cairo_status, cairo_status ()
-
cairo_status_t, enum cairo_status_t +
cairo_status_t, enum cairo_status_t
-
cairo_status_to_string, cairo_status_to_string () +
cairo_status_to_string, cairo_status_to_string ()
-
cairo_stroke, cairo_stroke () +
cairo_stroke, cairo_stroke ()
-
cairo_stroke_extents, cairo_stroke_extents () +
cairo_stroke_extents, cairo_stroke_extents ()
-
cairo_stroke_preserve, cairo_stroke_preserve () +
cairo_stroke_preserve, cairo_stroke_preserve ()
-
cairo_subpixel_order_t, enum cairo_subpixel_order_t +
cairo_subpixel_order_t, enum cairo_subpixel_order_t
-
cairo_surface_copy_page, cairo_surface_copy_page () +
cairo_surface_copy_page, cairo_surface_copy_page ()
-
cairo_surface_create_for_rectangle, cairo_surface_create_for_rectangle () +
cairo_surface_create_for_rectangle, cairo_surface_create_for_rectangle ()
-
cairo_surface_create_similar, cairo_surface_create_similar () +
cairo_surface_create_similar, cairo_surface_create_similar ()
-
cairo_surface_create_similar_image, cairo_surface_create_similar_image () +
cairo_surface_create_similar_image, cairo_surface_create_similar_image ()
-
cairo_surface_destroy, cairo_surface_destroy () +
cairo_surface_destroy, cairo_surface_destroy ()
-
cairo_surface_finish, cairo_surface_finish () +
cairo_surface_finish, cairo_surface_finish ()
-
cairo_surface_flush, cairo_surface_flush () +
cairo_surface_flush, cairo_surface_flush ()
-
cairo_surface_get_content, cairo_surface_get_content () +
cairo_surface_get_content, cairo_surface_get_content ()
-
cairo_surface_get_device, cairo_surface_get_device () +
cairo_surface_get_device, cairo_surface_get_device ()
-
cairo_surface_get_device_offset, cairo_surface_get_device_offset () +
cairo_surface_get_device_offset, cairo_surface_get_device_offset ()
-
cairo_surface_get_device_scale, cairo_surface_get_device_scale () +
cairo_surface_get_device_scale, cairo_surface_get_device_scale ()
-
cairo_surface_get_fallback_resolution, cairo_surface_get_fallback_resolution () +
cairo_surface_get_fallback_resolution, cairo_surface_get_fallback_resolution ()
-
cairo_surface_get_font_options, cairo_surface_get_font_options () +
cairo_surface_get_font_options, cairo_surface_get_font_options ()
-
cairo_surface_get_mime_data, cairo_surface_get_mime_data () +
cairo_surface_get_mime_data, cairo_surface_get_mime_data ()
-
cairo_surface_get_reference_count, cairo_surface_get_reference_count () +
cairo_surface_get_reference_count, cairo_surface_get_reference_count ()
-
cairo_surface_get_type, cairo_surface_get_type () +
cairo_surface_get_type, cairo_surface_get_type ()
-
cairo_surface_get_user_data, cairo_surface_get_user_data () +
cairo_surface_get_user_data, cairo_surface_get_user_data ()
-
cairo_surface_has_show_text_glyphs, cairo_surface_has_show_text_glyphs () +
cairo_surface_has_show_text_glyphs, cairo_surface_has_show_text_glyphs ()
-
cairo_surface_map_to_image, cairo_surface_map_to_image () +
cairo_surface_map_to_image, cairo_surface_map_to_image ()
-
cairo_surface_mark_dirty, cairo_surface_mark_dirty () +
cairo_surface_mark_dirty, cairo_surface_mark_dirty ()
-
cairo_surface_mark_dirty_rectangle, cairo_surface_mark_dirty_rectangle () +
cairo_surface_mark_dirty_rectangle, cairo_surface_mark_dirty_rectangle ()
-
cairo_surface_reference, cairo_surface_reference () +
cairo_surface_reference, cairo_surface_reference ()
-
cairo_surface_set_device_offset, cairo_surface_set_device_offset () +
cairo_surface_set_device_offset, cairo_surface_set_device_offset ()
-
cairo_surface_set_device_scale, cairo_surface_set_device_scale () +
cairo_surface_set_device_scale, cairo_surface_set_device_scale ()
-
cairo_surface_set_fallback_resolution, cairo_surface_set_fallback_resolution () +
cairo_surface_set_fallback_resolution, cairo_surface_set_fallback_resolution ()
-
cairo_surface_set_mime_data, cairo_surface_set_mime_data () +
cairo_surface_set_mime_data, cairo_surface_set_mime_data ()
-
cairo_surface_set_user_data, cairo_surface_set_user_data () +
cairo_surface_set_user_data, cairo_surface_set_user_data ()
-
cairo_surface_show_page, cairo_surface_show_page () +
cairo_surface_show_page, cairo_surface_show_page ()
-
cairo_surface_status, cairo_surface_status () +
cairo_surface_status, cairo_surface_status ()
-
cairo_surface_supports_mime_type, cairo_surface_supports_mime_type () +
cairo_surface_supports_mime_type, cairo_surface_supports_mime_type ()
-
cairo_surface_t, cairo_surface_t +
cairo_surface_t, cairo_surface_t
-
cairo_surface_type_t, enum cairo_surface_type_t +
cairo_surface_type_t, enum cairo_surface_type_t
-
cairo_surface_unmap_image, cairo_surface_unmap_image () +
cairo_surface_unmap_image, cairo_surface_unmap_image ()
-
cairo_surface_write_to_png, cairo_surface_write_to_png () +
cairo_surface_write_to_png, cairo_surface_write_to_png ()
-
cairo_surface_write_to_png_stream, cairo_surface_write_to_png_stream () +
cairo_surface_write_to_png_stream, cairo_surface_write_to_png_stream ()
-
cairo_svg_get_versions, cairo_svg_get_versions () +
cairo_svg_get_versions, cairo_svg_get_versions ()
-
cairo_svg_surface_create, cairo_svg_surface_create () +
cairo_svg_surface_create, cairo_svg_surface_create ()
-
cairo_svg_surface_create_for_stream, cairo_svg_surface_create_for_stream () +
cairo_svg_surface_create_for_stream, cairo_svg_surface_create_for_stream ()
-
cairo_svg_surface_restrict_to_version, cairo_svg_surface_restrict_to_version () +
cairo_svg_surface_restrict_to_version, cairo_svg_surface_restrict_to_version ()
-
cairo_svg_version_t, enum cairo_svg_version_t +
cairo_svg_version_t, enum cairo_svg_version_t
-
cairo_svg_version_to_string, cairo_svg_version_to_string () +
cairo_svg_version_to_string, cairo_svg_version_to_string ()

T

-
cairo_t, cairo_t +
cairo_t, cairo_t
-
cairo_tag_begin, cairo_tag_begin () +
cairo_tag_begin, cairo_tag_begin ()
-
CAIRO_TAG_DEST, CAIRO_TAG_DEST +
CAIRO_TAG_DEST, CAIRO_TAG_DEST
-
cairo_tag_end, cairo_tag_end () +
cairo_tag_end, cairo_tag_end ()
-
CAIRO_TAG_LINK, CAIRO_TAG_LINK +
CAIRO_TAG_LINK, CAIRO_TAG_LINK
-
cairo_text_cluster_allocate, cairo_text_cluster_allocate () +
cairo_text_cluster_allocate, cairo_text_cluster_allocate ()
-
cairo_text_cluster_flags_t, enum cairo_text_cluster_flags_t +
cairo_text_cluster_flags_t, enum cairo_text_cluster_flags_t
-
cairo_text_cluster_free, cairo_text_cluster_free () +
cairo_text_cluster_free, cairo_text_cluster_free ()
-
cairo_text_cluster_t, cairo_text_cluster_t +
cairo_text_cluster_t, cairo_text_cluster_t
-
cairo_text_extents, cairo_text_extents () +
cairo_text_extents, cairo_text_extents ()
-
cairo_text_extents_t, cairo_text_extents_t +
cairo_text_extents_t, cairo_text_extents_t
-
cairo_text_path, cairo_text_path () +
cairo_text_path, cairo_text_path ()
-
cairo_toy_font_face_create, cairo_toy_font_face_create () +
cairo_toy_font_face_create, cairo_toy_font_face_create ()
-
cairo_toy_font_face_get_family, cairo_toy_font_face_get_family () +
cairo_toy_font_face_get_family, cairo_toy_font_face_get_family ()
-
cairo_toy_font_face_get_slant, cairo_toy_font_face_get_slant () +
cairo_toy_font_face_get_slant, cairo_toy_font_face_get_slant ()
-
cairo_toy_font_face_get_weight, cairo_toy_font_face_get_weight () +
cairo_toy_font_face_get_weight, cairo_toy_font_face_get_weight ()
-
cairo_transform, cairo_transform () +
cairo_transform, cairo_transform ()
-
cairo_translate, cairo_translate () +
cairo_translate, cairo_translate ()

U

-
cairo_user_data_key_t, cairo_user_data_key_t +
cairo_user_data_key_t, cairo_user_data_key_t
-
cairo_user_font_face_create, cairo_user_font_face_create () +
cairo_user_font_face_create, cairo_user_font_face_create ()
-
cairo_user_font_face_get_init_func, cairo_user_font_face_get_init_func () +
cairo_user_font_face_get_init_func, cairo_user_font_face_get_init_func ()
-
cairo_user_font_face_get_render_glyph_func, cairo_user_font_face_get_render_glyph_func () +
cairo_user_font_face_get_render_glyph_func, cairo_user_font_face_get_render_glyph_func ()
-
cairo_user_font_face_get_text_to_glyphs_func, cairo_user_font_face_get_text_to_glyphs_func () +
cairo_user_font_face_get_text_to_glyphs_func, cairo_user_font_face_get_text_to_glyphs_func ()
-
cairo_user_font_face_get_unicode_to_glyph_func, cairo_user_font_face_get_unicode_to_glyph_func () +
cairo_user_font_face_get_unicode_to_glyph_func, cairo_user_font_face_get_unicode_to_glyph_func ()
-
cairo_user_font_face_set_init_func, cairo_user_font_face_set_init_func () +
cairo_user_font_face_set_init_func, cairo_user_font_face_set_init_func ()
-
cairo_user_font_face_set_render_glyph_func, cairo_user_font_face_set_render_glyph_func () +
cairo_user_font_face_set_render_glyph_func, cairo_user_font_face_set_render_glyph_func ()
-
cairo_user_font_face_set_text_to_glyphs_func, cairo_user_font_face_set_text_to_glyphs_func () +
cairo_user_font_face_set_text_to_glyphs_func, cairo_user_font_face_set_text_to_glyphs_func ()
-
cairo_user_font_face_set_unicode_to_glyph_func, cairo_user_font_face_set_unicode_to_glyph_func () +
cairo_user_font_face_set_unicode_to_glyph_func, cairo_user_font_face_set_unicode_to_glyph_func ()
-
cairo_user_scaled_font_init_func_t, cairo_user_scaled_font_init_func_t () +
cairo_user_scaled_font_init_func_t, cairo_user_scaled_font_init_func_t ()
-
cairo_user_scaled_font_render_glyph_func_t, cairo_user_scaled_font_render_glyph_func_t () +
cairo_user_scaled_font_render_glyph_func_t, cairo_user_scaled_font_render_glyph_func_t ()
-
cairo_user_scaled_font_text_to_glyphs_func_t, cairo_user_scaled_font_text_to_glyphs_func_t () +
cairo_user_scaled_font_text_to_glyphs_func_t, cairo_user_scaled_font_text_to_glyphs_func_t ()
-
cairo_user_scaled_font_unicode_to_glyph_func_t, cairo_user_scaled_font_unicode_to_glyph_func_t () +
cairo_user_scaled_font_unicode_to_glyph_func_t, cairo_user_scaled_font_unicode_to_glyph_func_t ()
-
cairo_user_to_device, cairo_user_to_device () +
cairo_user_to_device, cairo_user_to_device ()
-
cairo_user_to_device_distance, cairo_user_to_device_distance () +
cairo_user_to_device_distance, cairo_user_to_device_distance ()

V

-
cairo_version, cairo_version () +
cairo_version, cairo_version ()
-
CAIRO_VERSION, CAIRO_VERSION +
CAIRO_VERSION, CAIRO_VERSION
-
CAIRO_VERSION_ENCODE, CAIRO_VERSION_ENCODE() +
CAIRO_VERSION_ENCODE, CAIRO_VERSION_ENCODE()
-
CAIRO_VERSION_MAJOR, CAIRO_VERSION_MAJOR +
CAIRO_VERSION_MAJOR, CAIRO_VERSION_MAJOR
-
CAIRO_VERSION_MICRO, CAIRO_VERSION_MICRO +
CAIRO_VERSION_MICRO, CAIRO_VERSION_MICRO
-
CAIRO_VERSION_MINOR, CAIRO_VERSION_MINOR +
CAIRO_VERSION_MINOR, CAIRO_VERSION_MINOR
-
cairo_version_string, cairo_version_string () +
cairo_version_string, cairo_version_string ()
-
CAIRO_VERSION_STRING, CAIRO_VERSION_STRING +
CAIRO_VERSION_STRING, CAIRO_VERSION_STRING
-
CAIRO_VERSION_STRINGIZE, CAIRO_VERSION_STRINGIZE() +
CAIRO_VERSION_STRINGIZE, CAIRO_VERSION_STRINGIZE()

W

-
cairo_win32_font_face_create_for_hfont, cairo_win32_font_face_create_for_hfont () +
cairo_win32_font_face_create_for_hfont, cairo_win32_font_face_create_for_hfont ()
-
cairo_win32_font_face_create_for_logfontw, cairo_win32_font_face_create_for_logfontw () +
cairo_win32_font_face_create_for_logfontw, cairo_win32_font_face_create_for_logfontw ()
-
cairo_win32_font_face_create_for_logfontw_hfont, cairo_win32_font_face_create_for_logfontw_hfont () +
cairo_win32_font_face_create_for_logfontw_hfont, cairo_win32_font_face_create_for_logfontw_hfont ()
-
cairo_win32_printing_surface_create, cairo_win32_printing_surface_create () +
cairo_win32_printing_surface_create, cairo_win32_printing_surface_create ()
-
cairo_win32_scaled_font_done_font, cairo_win32_scaled_font_done_font () +
cairo_win32_scaled_font_done_font, cairo_win32_scaled_font_done_font ()
-
cairo_win32_scaled_font_get_device_to_logical, cairo_win32_scaled_font_get_device_to_logical () +
cairo_win32_scaled_font_get_device_to_logical, cairo_win32_scaled_font_get_device_to_logical ()
-
cairo_win32_scaled_font_get_logical_to_device, cairo_win32_scaled_font_get_logical_to_device () +
cairo_win32_scaled_font_get_logical_to_device, cairo_win32_scaled_font_get_logical_to_device ()
-
cairo_win32_scaled_font_get_metrics_factor, cairo_win32_scaled_font_get_metrics_factor () +
cairo_win32_scaled_font_get_metrics_factor, cairo_win32_scaled_font_get_metrics_factor ()
-
cairo_win32_scaled_font_select_font, cairo_win32_scaled_font_select_font () +
cairo_win32_scaled_font_select_font, cairo_win32_scaled_font_select_font ()
-
cairo_win32_surface_create, cairo_win32_surface_create () +
cairo_win32_surface_create, cairo_win32_surface_create ()
-
cairo_win32_surface_create_with_ddb, cairo_win32_surface_create_with_ddb () +
cairo_win32_surface_create_with_ddb, cairo_win32_surface_create_with_ddb ()
-
cairo_win32_surface_create_with_dib, cairo_win32_surface_create_with_dib () +
cairo_win32_surface_create_with_dib, cairo_win32_surface_create_with_dib ()
-
cairo_win32_surface_get_dc, cairo_win32_surface_get_dc () +
cairo_win32_surface_get_dc, cairo_win32_surface_get_dc ()
-
cairo_win32_surface_get_image, cairo_win32_surface_get_image () +
cairo_win32_surface_get_image, cairo_win32_surface_get_image ()
-
cairo_write_func_t, cairo_write_func_t () +
cairo_write_func_t, cairo_write_func_t ()

X

-
cairo_xcb_device_debug_cap_xrender_version, cairo_xcb_device_debug_cap_xrender_version () +
cairo_xcb_device_debug_cap_xrender_version, cairo_xcb_device_debug_cap_xrender_version ()
-
cairo_xcb_device_debug_cap_xshm_version, cairo_xcb_device_debug_cap_xshm_version () +
cairo_xcb_device_debug_cap_xshm_version, cairo_xcb_device_debug_cap_xshm_version ()
-
cairo_xcb_device_debug_get_precision, cairo_xcb_device_debug_get_precision () +
cairo_xcb_device_debug_get_precision, cairo_xcb_device_debug_get_precision ()
-
cairo_xcb_device_debug_set_precision, cairo_xcb_device_debug_set_precision () +
cairo_xcb_device_debug_set_precision, cairo_xcb_device_debug_set_precision ()
-
cairo_xcb_device_get_connection, cairo_xcb_device_get_connection () +
cairo_xcb_device_get_connection, cairo_xcb_device_get_connection ()
-
cairo_xcb_surface_create, cairo_xcb_surface_create () +
cairo_xcb_surface_create, cairo_xcb_surface_create ()
-
cairo_xcb_surface_create_for_bitmap, cairo_xcb_surface_create_for_bitmap () +
cairo_xcb_surface_create_for_bitmap, cairo_xcb_surface_create_for_bitmap ()
-
cairo_xcb_surface_create_with_xrender_format, cairo_xcb_surface_create_with_xrender_format () +
cairo_xcb_surface_create_with_xrender_format, cairo_xcb_surface_create_with_xrender_format ()
-
cairo_xcb_surface_set_drawable, cairo_xcb_surface_set_drawable () +
cairo_xcb_surface_set_drawable, cairo_xcb_surface_set_drawable ()
-
cairo_xcb_surface_set_size, cairo_xcb_surface_set_size () +
cairo_xcb_surface_set_size, cairo_xcb_surface_set_size ()
-
cairo_xlib_device_debug_cap_xrender_version, cairo_xlib_device_debug_cap_xrender_version () +
cairo_xlib_device_debug_cap_xrender_version, cairo_xlib_device_debug_cap_xrender_version ()
-
cairo_xlib_device_debug_get_precision, cairo_xlib_device_debug_get_precision () +
cairo_xlib_device_debug_get_precision, cairo_xlib_device_debug_get_precision ()
-
cairo_xlib_device_debug_set_precision, cairo_xlib_device_debug_set_precision () +
cairo_xlib_device_debug_set_precision, cairo_xlib_device_debug_set_precision ()
-
cairo_xlib_surface_create, cairo_xlib_surface_create () +
cairo_xlib_surface_create, cairo_xlib_surface_create ()
-
cairo_xlib_surface_create_for_bitmap, cairo_xlib_surface_create_for_bitmap () +
cairo_xlib_surface_create_for_bitmap, cairo_xlib_surface_create_for_bitmap ()
-
cairo_xlib_surface_create_with_xrender_format, cairo_xlib_surface_create_with_xrender_format () +
cairo_xlib_surface_create_with_xrender_format, cairo_xlib_surface_create_with_xrender_format ()
-
cairo_xlib_surface_get_depth, cairo_xlib_surface_get_depth () +
cairo_xlib_surface_get_depth, cairo_xlib_surface_get_depth ()
-
cairo_xlib_surface_get_display, cairo_xlib_surface_get_display () +
cairo_xlib_surface_get_display, cairo_xlib_surface_get_display ()
-
cairo_xlib_surface_get_drawable, cairo_xlib_surface_get_drawable () +
cairo_xlib_surface_get_drawable, cairo_xlib_surface_get_drawable ()
-
cairo_xlib_surface_get_height, cairo_xlib_surface_get_height () +
cairo_xlib_surface_get_height, cairo_xlib_surface_get_height ()
-
cairo_xlib_surface_get_screen, cairo_xlib_surface_get_screen () +
cairo_xlib_surface_get_screen, cairo_xlib_surface_get_screen ()
-
cairo_xlib_surface_get_visual, cairo_xlib_surface_get_visual () +
cairo_xlib_surface_get_visual, cairo_xlib_surface_get_visual ()
-
cairo_xlib_surface_get_width, cairo_xlib_surface_get_width () +
cairo_xlib_surface_get_width, cairo_xlib_surface_get_width ()
-
cairo_xlib_surface_get_xrender_format, cairo_xlib_surface_get_xrender_format () +
cairo_xlib_surface_get_xrender_format, cairo_xlib_surface_get_xrender_format ()
-
cairo_xlib_surface_set_drawable, cairo_xlib_surface_set_drawable () +
cairo_xlib_surface_set_drawable, cairo_xlib_surface_set_drawable ()
-
cairo_xlib_surface_set_size, cairo_xlib_surface_set_size () +
cairo_xlib_surface_set_size, cairo_xlib_surface_set_size ()
diff --git a/WebKitLibraries/cairo/doc/public/html/index.html b/WebKitLibraries/cairo/doc/public/html/index.html index 3296ee8a0..b933b3c06 100644 --- a/WebKitLibraries/cairo/doc/public/html/index.html +++ b/WebKitLibraries/cairo/doc/public/html/index.html @@ -14,7 +14,7 @@
-

for Cairo 1.15.10 +

for Cairo 1.15.12


diff --git a/WebKitLibraries/cairo/doc/public/tmpl/cairo-tag.sgml b/WebKitLibraries/cairo/doc/public/tmpl/cairo-tag.sgml index 6baef6dd2..8f6315cf6 100644 --- a/WebKitLibraries/cairo/doc/public/tmpl/cairo-tag.sgml +++ b/WebKitLibraries/cairo/doc/public/tmpl/cairo-tag.sgml @@ -9,13 +9,11 @@ cairo-tag - - diff --git a/WebKitLibraries/cairo/doc/public/version.xml b/WebKitLibraries/cairo/doc/public/version.xml index fcf38d94d..50830c83c 100644 --- a/WebKitLibraries/cairo/doc/public/version.xml +++ b/WebKitLibraries/cairo/doc/public/version.xml @@ -1 +1 @@ -1.15.10 +1.15.12 diff --git a/WebKitLibraries/cairo/doc/public/xml/api-index-1.16.xml b/WebKitLibraries/cairo/doc/public/xml/api-index-1.16.xml index 1ff1c9b0d..08cdc9d47 100644 --- a/WebKitLibraries/cairo/doc/public/xml/api-index-1.16.xml +++ b/WebKitLibraries/cairo/doc/public/xml/api-index-1.16.xml @@ -19,9 +19,6 @@ cairo_pdf_surface_set_page_label, function in PDF Surfaces cairo_pdf_surface_set_thumbnail_size, function in PDF Surfaces -S -cairo_svg_version_t, enum in SVG Surfaces - T cairo_tag_begin, function in Tags and Links CAIRO_TAG_DEST, macro in Tags and Links diff --git a/WebKitLibraries/cairo/doc/public/xml/api-index-1.2.xml b/WebKitLibraries/cairo/doc/public/xml/api-index-1.2.xml index 5dd2d3bd2..144d8707c 100644 --- a/WebKitLibraries/cairo/doc/public/xml/api-index-1.2.xml +++ b/WebKitLibraries/cairo/doc/public/xml/api-index-1.2.xml @@ -58,6 +58,7 @@ cairo_svg_surface_create, function in SVG Surfaces cairo_svg_surface_create_for_stream, function in SVG Surfaces cairo_svg_surface_restrict_to_version, function in SVG Surfaces +cairo_svg_version_t, enum in SVG Surfaces cairo_svg_version_to_string, function in SVG Surfaces W diff --git a/WebKitLibraries/cairo/doc/public/xml/cairo-ft.xml b/WebKitLibraries/cairo/doc/public/xml/cairo-ft.xml index c10f1921f..e68e2ad0a 100644 --- a/WebKitLibraries/cairo/doc/public/xml/cairo-ft.xml +++ b/WebKitLibraries/cairo/doc/public/xml/cairo-ft.xml @@ -212,7 +212,8 @@ before calling FcDefaultSubstitute FT_Face cairo_ft_scaled_font_lock_face (cairo_scaled_font_t *scaled_font); cairo_ft_scaled_font_lock_face() gets the FT_Face object from a FreeType -backend font and scales it appropriately for the font. You must +backend font and scales it appropriately for the font and applies OpenType +font variations if applicable. You must release the face with cairo_ft_scaled_font_unlock_face() when you are done using it. Since the FT_Face object can be shared between multiple cairo_scaled_font_t objects, you must not diff --git a/WebKitLibraries/cairo/doc/public/xml/cairo-image.xml b/WebKitLibraries/cairo/doc/public/xml/cairo-image.xml index 50cacb55f..f9c94438e 100644 --- a/WebKitLibraries/cairo/doc/public/xml/cairo-image.xml +++ b/WebKitLibraries/cairo/doc/public/xml/cairo-image.xml @@ -394,7 +394,7 @@ image data. each pixel is a 1-bit quantity holding an alpha value. Pixels are packed together into 32-bit quantities. The ordering of the bits matches the - endianess of the platform. On a big-endian machine, the + endianness of the platform. On a big-endian machine, the first pixel is in the uppermost bit, on a little-endian machine the first pixel is in the least-significant bit. (Since 1.0) diff --git a/WebKitLibraries/cairo/doc/public/xml/cairo-svg.xml b/WebKitLibraries/cairo/doc/public/xml/cairo-svg.xml index 739c01f32..e7cc2b935 100644 --- a/WebKitLibraries/cairo/doc/public/xml/cairo-svg.xml +++ b/WebKitLibraries/cairo/doc/public/xml/cairo-svg.xml @@ -254,38 +254,11 @@ for a way to get the list of valid version ids. Defined if the SVG surface backend is available. This macro can be used to conditionally compile backend-specific code. Since: 1.2 - + enum cairo_svg_version_t -cairo_svg_version_t -CAIRO_SVG_UNIT_USER -: User unit, a value in the current coordinate system. - If used in the root element for the initial coordinate systems it - corresponds to pixels. (Since 1.16) -CAIRO_SVG_UNIT_EM -: The size of the element's font. (Since 1.16) -CAIRO_SVG_UNIT_EX -: The x-height of the element’s font. (Since 1.16) -CAIRO_SVG_UNIT_PX -: Pixels (1px = 1/96th of 1in). (Since 1.16) -CAIRO_SVG_UNIT_IN -: Inches (1in = 2.54cm = 96px). (Since 1.16) -CAIRO_SVG_UNIT_CM -: Centimeters (1cm = 96px/2.54). (Since 1.16) -CAIRO_SVG_UNIT_MM -: Millimeters (1mm = 1/10th of 1cm). (Since 1.16) -CAIRO_SVG_UNIT_PT -: Points (1pt = 1/72th of 1in). (Since 1.16) -CAIRO_SVG_UNIT_PC -: Picas (1pc = 1/6th of 1in). (Since 1.16) -CAIRO_SVG_UNIT_PERCENT -: Percent, a value that is some fraction of another - reference value. (Since 1.16) -cairo_svg_unit_t is used to describe the units valid for coordinates and -lengths in the SVG specification. -See also: -https://www.w3.org/TR/SVG/coords.htmlUnits -https://www.w3.org/TR/SVG/types.htmlDataTypeLength -https://www.w3.org/TR/css-values-3/lengths +cairo_svg_version_t +cairo_svg_version_t is used to describe the version number of the SVG +specification that a generated SVG file will conform to. Members @@ -295,15 +268,17 @@ https://www.w3.org/TR/css-values-3/lengths< CAIRO_SVG_VERSION_1_1 - +The version 1.1 of the SVG specification. (Since 1.2) + CAIRO_SVG_VERSION_1_2 - +The version 1.2 of the SVG specification. (Since 1.2) + -Since: 1.16 +Since: 1.2 diff --git a/WebKitLibraries/cairo/doc/public/xml/cairo-tag.xml b/WebKitLibraries/cairo/doc/public/xml/cairo-tag.xml index 9ca2133f3..85520af10 100644 --- a/WebKitLibraries/cairo/doc/public/xml/cairo-tag.xml +++ b/WebKitLibraries/cairo/doc/public/xml/cairo-tag.xml @@ -180,7 +180,7 @@ operations with the CAIRO_TAG_DEST< no operations are enclosed, the y coordidate is 0. internal : A boolean that if true, the destination name may be - ommitted from PDF where possible. In this case, links + omitted from PDF where possible. In this case, links refer directly to the page and position instead of via the named destination table. Note that if this destination is referenced by another PDF (see File Links), @@ -200,11 +200,11 @@ cairo_tag_end (cr, CAIRO_TAG_DEST); Document Structure (PDF)The document structure tags provide a means of specifying structural information -such as headers, paragraphs, tables, and figures. The inclusion of structural information faciliates: +such as headers, paragraphs, tables, and figures. The inclusion of structural information facilitates: Extraction of text and graphics for copy and paste Reflow of text and graphics in the viewer -Proccessing text eg searching and indexing +Processing text eg searching and indexing Conversion to other formats Accessability support diff --git a/WebKitLibraries/cairo/doc/public/xml/cairo-version.xml b/WebKitLibraries/cairo/doc/public/xml/cairo-version.xml index 57e9c4d40..7825ecde2 100644 --- a/WebKitLibraries/cairo/doc/public/xml/cairo-version.xml +++ b/WebKitLibraries/cairo/doc/public/xml/cairo-version.xml @@ -116,8 +116,8 @@ macro CAIRO_VERSION_ENCODE() Compile-time ------------ -CAIRO_VERSION_STRING Human-readable -CAIRO_VERSION Encoded, suitable for comparison +CAIRO_VERSION_STRING Human-readable +CAIRO_VERSION Encoded, suitable for comparison   Run-time -------- diff --git a/WebKitLibraries/cairo/src/Makefile.am.features b/WebKitLibraries/cairo/src/Makefile.am.features index 0035b9dd9..47c95db1f 100644 --- a/WebKitLibraries/cairo/src/Makefile.am.features +++ b/WebKitLibraries/cairo/src/Makefile.am.features @@ -193,22 +193,6 @@ if CAIRO_HAS_WIN32_FONT enabled_cairo_pkgconf += cairo-win32-font.pc endif -unsupported_cairo_headers += $(cairo_skia_headers) -all_cairo_headers += $(cairo_skia_headers) -all_cairo_private += $(cairo_skia_private) -all_cairo_cxx_sources += $(cairo_skia_cxx_sources) -all_cairo_sources += $(cairo_skia_sources) -if CAIRO_HAS_SKIA_SURFACE -enabled_cairo_headers += $(cairo_skia_headers) -enabled_cairo_private += $(cairo_skia_private) -enabled_cairo_cxx_sources += $(cairo_skia_cxx_sources) -enabled_cairo_sources += $(cairo_skia_sources) -endif -all_cairo_pkgconf += cairo-skia.pc -if CAIRO_HAS_SKIA_SURFACE -enabled_cairo_pkgconf += cairo-skia.pc -endif - unsupported_cairo_headers += $(cairo_os2_headers) all_cairo_headers += $(cairo_os2_headers) all_cairo_private += $(cairo_os2_private) diff --git a/WebKitLibraries/cairo/src/Makefile.in b/WebKitLibraries/cairo/src/Makefile.in index 9d5ecbdcb..85341a996 100644 --- a/WebKitLibraries/cairo/src/Makefile.in +++ b/WebKitLibraries/cairo/src/Makefile.in @@ -146,7 +146,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ EXTRA_PROGRAMS = -TESTS = $(am__EXEEXT_1) $(am__append_191) +TESTS = $(am__EXEEXT_1) $(am__append_186) check_PROGRAMS = check-link$(EXEEXT) @CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_1 = $(cairo_xlib_headers) @CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_2 = $(cairo_xlib_private) @@ -203,142 +203,137 @@ check_PROGRAMS = check-link$(EXEEXT) @CAIRO_HAS_WIN32_FONT_TRUE@am__append_53 = $(cairo_win32_font_cxx_sources) @CAIRO_HAS_WIN32_FONT_TRUE@am__append_54 = $(cairo_win32_font_sources) @CAIRO_HAS_WIN32_FONT_TRUE@am__append_55 = cairo-win32-font.pc -@CAIRO_HAS_SKIA_SURFACE_TRUE@am__append_56 = $(cairo_skia_headers) -@CAIRO_HAS_SKIA_SURFACE_TRUE@am__append_57 = $(cairo_skia_private) -@CAIRO_HAS_SKIA_SURFACE_TRUE@am__append_58 = $(cairo_skia_cxx_sources) -@CAIRO_HAS_SKIA_SURFACE_TRUE@am__append_59 = $(cairo_skia_sources) -@CAIRO_HAS_SKIA_SURFACE_TRUE@am__append_60 = cairo-skia.pc -@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_61 = $(cairo_os2_headers) -@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_62 = $(cairo_os2_private) -@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_63 = $(cairo_os2_cxx_sources) -@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_64 = $(cairo_os2_sources) -@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_65 = cairo-os2.pc -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_66 = $(cairo_beos_headers) -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_67 = $(cairo_beos_private) -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_68 = $(cairo_beos_cxx_sources) -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_69 = $(cairo_beos_sources) -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_70 = cairo-beos.pc -@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_71 = $(cairo_drm_headers) -@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_72 = $(cairo_drm_private) -@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_73 = $(cairo_drm_cxx_sources) -@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_74 = $(cairo_drm_sources) -@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_75 = cairo-drm.pc -@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_76 = $(cairo_gallium_headers) -@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_77 = $(cairo_gallium_private) -@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_78 = $(cairo_gallium_cxx_sources) -@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_79 = $(cairo_gallium_sources) -@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_80 = cairo-gallium.pc -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_81 = $(cairo_png_headers) -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_82 = $(cairo_png_private) -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_83 = $(cairo_png_cxx_sources) -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_84 = $(cairo_png_sources) -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_85 = cairo-png.pc -@CAIRO_HAS_GL_SURFACE_TRUE@am__append_86 = $(cairo_gl_headers) -@CAIRO_HAS_GL_SURFACE_TRUE@am__append_87 = $(cairo_gl_private) -@CAIRO_HAS_GL_SURFACE_TRUE@am__append_88 = $(cairo_gl_cxx_sources) -@CAIRO_HAS_GL_SURFACE_TRUE@am__append_89 = $(cairo_gl_sources) -@CAIRO_HAS_GL_SURFACE_TRUE@am__append_90 = cairo-gl.pc -@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_91 = $(cairo_glesv2_headers) -@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_92 = $(cairo_glesv2_private) -@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_93 = $(cairo_glesv2_cxx_sources) -@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_94 = $(cairo_glesv2_sources) -@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_95 = cairo-glesv2.pc -@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_96 = $(cairo_glesv3_headers) -@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_97 = $(cairo_glesv3_private) -@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_98 = $(cairo_glesv3_cxx_sources) -@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_99 = $(cairo_glesv3_sources) -@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_100 = cairo-glesv3.pc -@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_101 = $(cairo_cogl_headers) -@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_102 = $(cairo_cogl_private) -@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_103 = $(cairo_cogl_cxx_sources) -@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_104 = $(cairo_cogl_sources) -@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_105 = cairo-cogl.pc -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_106 = $(cairo_directfb_headers) -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_107 = $(cairo_directfb_private) -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_108 = $(cairo_directfb_cxx_sources) -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_109 = $(cairo_directfb_sources) -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_110 = cairo-directfb.pc -@CAIRO_HAS_VG_SURFACE_TRUE@am__append_111 = $(cairo_vg_headers) -@CAIRO_HAS_VG_SURFACE_TRUE@am__append_112 = $(cairo_vg_private) -@CAIRO_HAS_VG_SURFACE_TRUE@am__append_113 = $(cairo_vg_cxx_sources) -@CAIRO_HAS_VG_SURFACE_TRUE@am__append_114 = $(cairo_vg_sources) -@CAIRO_HAS_VG_SURFACE_TRUE@am__append_115 = cairo-vg.pc -@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_116 = $(cairo_egl_headers) -@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_117 = $(cairo_egl_private) -@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_118 = $(cairo_egl_cxx_sources) -@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_119 = $(cairo_egl_sources) -@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_120 = cairo-egl.pc -@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_121 = $(cairo_glx_headers) -@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_122 = $(cairo_glx_private) -@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_123 = $(cairo_glx_cxx_sources) -@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_124 = $(cairo_glx_sources) -@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_125 = cairo-glx.pc -@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_126 = $(cairo_wgl_headers) -@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_127 = $(cairo_wgl_private) -@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_128 = $(cairo_wgl_cxx_sources) -@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_129 = $(cairo_wgl_sources) -@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_130 = cairo-wgl.pc -@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_131 = $(cairo_script_headers) -@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_132 = $(cairo_script_private) -@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_133 = $(cairo_script_cxx_sources) -@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_134 = $(cairo_script_sources) -@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_135 = cairo-script.pc -@CAIRO_HAS_FT_FONT_TRUE@am__append_136 = $(cairo_ft_headers) -@CAIRO_HAS_FT_FONT_TRUE@am__append_137 = $(cairo_ft_private) -@CAIRO_HAS_FT_FONT_TRUE@am__append_138 = $(cairo_ft_cxx_sources) -@CAIRO_HAS_FT_FONT_TRUE@am__append_139 = $(cairo_ft_sources) -@CAIRO_HAS_FT_FONT_TRUE@am__append_140 = cairo-ft.pc -@CAIRO_HAS_FC_FONT_TRUE@am__append_141 = $(cairo_fc_headers) -@CAIRO_HAS_FC_FONT_TRUE@am__append_142 = $(cairo_fc_private) -@CAIRO_HAS_FC_FONT_TRUE@am__append_143 = $(cairo_fc_cxx_sources) -@CAIRO_HAS_FC_FONT_TRUE@am__append_144 = $(cairo_fc_sources) -@CAIRO_HAS_FC_FONT_TRUE@am__append_145 = cairo-fc.pc -@CAIRO_HAS_PS_SURFACE_TRUE@am__append_146 = $(cairo_ps_headers) -@CAIRO_HAS_PS_SURFACE_TRUE@am__append_147 = $(cairo_ps_private) -@CAIRO_HAS_PS_SURFACE_TRUE@am__append_148 = $(cairo_ps_cxx_sources) -@CAIRO_HAS_PS_SURFACE_TRUE@am__append_149 = $(cairo_ps_sources) -@CAIRO_HAS_PS_SURFACE_TRUE@am__append_150 = cairo-ps.pc -@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_151 = $(cairo_pdf_headers) -@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_152 = $(cairo_pdf_private) -@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_153 = $(cairo_pdf_cxx_sources) -@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_154 = $(cairo_pdf_sources) -@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_155 = cairo-pdf.pc -@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_156 = $(cairo_svg_headers) -@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_157 = $(cairo_svg_private) -@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_158 = $(cairo_svg_cxx_sources) -@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_159 = $(cairo_svg_sources) -@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_160 = cairo-svg.pc -@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_161 = $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers) -@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_162 = $(cairo_test_surfaces_cxx_sources) -@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_163 = $(cairo_test_surfaces_sources) -@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_164 = $(cairo_tee_headers) -@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_165 = $(cairo_tee_private) -@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_166 = $(cairo_tee_cxx_sources) -@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_167 = $(cairo_tee_sources) -@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_168 = cairo-tee.pc -@CAIRO_HAS_XML_SURFACE_TRUE@am__append_169 = $(cairo_xml_headers) -@CAIRO_HAS_XML_SURFACE_TRUE@am__append_170 = $(cairo_xml_private) -@CAIRO_HAS_XML_SURFACE_TRUE@am__append_171 = $(cairo_xml_cxx_sources) -@CAIRO_HAS_XML_SURFACE_TRUE@am__append_172 = $(cairo_xml_sources) -@CAIRO_HAS_XML_SURFACE_TRUE@am__append_173 = cairo-xml.pc -@CAIRO_HAS_PTHREAD_TRUE@am__append_174 = $(cairo_pthread_private) $(cairo_pthread_headers) -@CAIRO_HAS_PTHREAD_TRUE@am__append_175 = $(cairo_pthread_cxx_sources) -@CAIRO_HAS_PTHREAD_TRUE@am__append_176 = $(cairo_pthread_sources) -@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_177 = $(cairo_gobject_headers) -@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_178 = $(cairo_gobject_private) -@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_179 = $(cairo_gobject_cxx_sources) -@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_180 = $(cairo_gobject_sources) -@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_181 = cairo-gobject.pc -@CAIRO_HAS_TRACE_TRUE@am__append_182 = $(cairo_trace_private) $(cairo_trace_headers) -@CAIRO_HAS_TRACE_TRUE@am__append_183 = $(cairo_trace_cxx_sources) -@CAIRO_HAS_TRACE_TRUE@am__append_184 = $(cairo_trace_sources) -@CAIRO_HAS_INTERPRETER_TRUE@am__append_185 = $(cairo_interpreter_private) $(cairo_interpreter_headers) -@CAIRO_HAS_INTERPRETER_TRUE@am__append_186 = $(cairo_interpreter_cxx_sources) -@CAIRO_HAS_INTERPRETER_TRUE@am__append_187 = $(cairo_interpreter_sources) -@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_188 = $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers) -@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_189 = $(cairo_symbol_lookup_cxx_sources) -@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_190 = $(cairo_symbol_lookup_sources) -@CROSS_COMPILING_FALSE@am__append_191 = check-link$(EXEEXT) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_56 = $(cairo_os2_headers) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_57 = $(cairo_os2_private) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_58 = $(cairo_os2_cxx_sources) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_59 = $(cairo_os2_sources) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_60 = cairo-os2.pc +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_61 = $(cairo_beos_headers) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_62 = $(cairo_beos_private) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_63 = $(cairo_beos_cxx_sources) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_64 = $(cairo_beos_sources) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_65 = cairo-beos.pc +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_66 = $(cairo_drm_headers) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_67 = $(cairo_drm_private) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_68 = $(cairo_drm_cxx_sources) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_69 = $(cairo_drm_sources) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_70 = cairo-drm.pc +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_71 = $(cairo_gallium_headers) +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_72 = $(cairo_gallium_private) +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_73 = $(cairo_gallium_cxx_sources) +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_74 = $(cairo_gallium_sources) +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_75 = cairo-gallium.pc +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_76 = $(cairo_png_headers) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_77 = $(cairo_png_private) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_78 = $(cairo_png_cxx_sources) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_79 = $(cairo_png_sources) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_80 = cairo-png.pc +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_81 = $(cairo_gl_headers) +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_82 = $(cairo_gl_private) +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_83 = $(cairo_gl_cxx_sources) +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_84 = $(cairo_gl_sources) +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_85 = cairo-gl.pc +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_86 = $(cairo_glesv2_headers) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_87 = $(cairo_glesv2_private) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_88 = $(cairo_glesv2_cxx_sources) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_89 = $(cairo_glesv2_sources) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_90 = cairo-glesv2.pc +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_91 = $(cairo_glesv3_headers) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_92 = $(cairo_glesv3_private) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_93 = $(cairo_glesv3_cxx_sources) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_94 = $(cairo_glesv3_sources) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_95 = cairo-glesv3.pc +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_96 = $(cairo_cogl_headers) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_97 = $(cairo_cogl_private) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_98 = $(cairo_cogl_cxx_sources) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_99 = $(cairo_cogl_sources) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_100 = cairo-cogl.pc +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_101 = $(cairo_directfb_headers) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_102 = $(cairo_directfb_private) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_103 = $(cairo_directfb_cxx_sources) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_104 = $(cairo_directfb_sources) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_105 = cairo-directfb.pc +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_106 = $(cairo_vg_headers) +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_107 = $(cairo_vg_private) +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_108 = $(cairo_vg_cxx_sources) +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_109 = $(cairo_vg_sources) +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_110 = cairo-vg.pc +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_111 = $(cairo_egl_headers) +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_112 = $(cairo_egl_private) +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_113 = $(cairo_egl_cxx_sources) +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_114 = $(cairo_egl_sources) +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_115 = cairo-egl.pc +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_116 = $(cairo_glx_headers) +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_117 = $(cairo_glx_private) +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_118 = $(cairo_glx_cxx_sources) +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_119 = $(cairo_glx_sources) +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_120 = cairo-glx.pc +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_121 = $(cairo_wgl_headers) +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_122 = $(cairo_wgl_private) +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_123 = $(cairo_wgl_cxx_sources) +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_124 = $(cairo_wgl_sources) +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_125 = cairo-wgl.pc +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_126 = $(cairo_script_headers) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_127 = $(cairo_script_private) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_128 = $(cairo_script_cxx_sources) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_129 = $(cairo_script_sources) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_130 = cairo-script.pc +@CAIRO_HAS_FT_FONT_TRUE@am__append_131 = $(cairo_ft_headers) +@CAIRO_HAS_FT_FONT_TRUE@am__append_132 = $(cairo_ft_private) +@CAIRO_HAS_FT_FONT_TRUE@am__append_133 = $(cairo_ft_cxx_sources) +@CAIRO_HAS_FT_FONT_TRUE@am__append_134 = $(cairo_ft_sources) +@CAIRO_HAS_FT_FONT_TRUE@am__append_135 = cairo-ft.pc +@CAIRO_HAS_FC_FONT_TRUE@am__append_136 = $(cairo_fc_headers) +@CAIRO_HAS_FC_FONT_TRUE@am__append_137 = $(cairo_fc_private) +@CAIRO_HAS_FC_FONT_TRUE@am__append_138 = $(cairo_fc_cxx_sources) +@CAIRO_HAS_FC_FONT_TRUE@am__append_139 = $(cairo_fc_sources) +@CAIRO_HAS_FC_FONT_TRUE@am__append_140 = cairo-fc.pc +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_141 = $(cairo_ps_headers) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_142 = $(cairo_ps_private) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_143 = $(cairo_ps_cxx_sources) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_144 = $(cairo_ps_sources) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_145 = cairo-ps.pc +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_146 = $(cairo_pdf_headers) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_147 = $(cairo_pdf_private) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_148 = $(cairo_pdf_cxx_sources) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_149 = $(cairo_pdf_sources) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_150 = cairo-pdf.pc +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_151 = $(cairo_svg_headers) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_152 = $(cairo_svg_private) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_153 = $(cairo_svg_cxx_sources) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_154 = $(cairo_svg_sources) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_155 = cairo-svg.pc +@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_156 = $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers) +@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_157 = $(cairo_test_surfaces_cxx_sources) +@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_158 = $(cairo_test_surfaces_sources) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_159 = $(cairo_tee_headers) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_160 = $(cairo_tee_private) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_161 = $(cairo_tee_cxx_sources) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_162 = $(cairo_tee_sources) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_163 = cairo-tee.pc +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_164 = $(cairo_xml_headers) +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_165 = $(cairo_xml_private) +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_166 = $(cairo_xml_cxx_sources) +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_167 = $(cairo_xml_sources) +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_168 = cairo-xml.pc +@CAIRO_HAS_PTHREAD_TRUE@am__append_169 = $(cairo_pthread_private) $(cairo_pthread_headers) +@CAIRO_HAS_PTHREAD_TRUE@am__append_170 = $(cairo_pthread_cxx_sources) +@CAIRO_HAS_PTHREAD_TRUE@am__append_171 = $(cairo_pthread_sources) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_172 = $(cairo_gobject_headers) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_173 = $(cairo_gobject_private) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_174 = $(cairo_gobject_cxx_sources) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_175 = $(cairo_gobject_sources) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_176 = cairo-gobject.pc +@CAIRO_HAS_TRACE_TRUE@am__append_177 = $(cairo_trace_private) $(cairo_trace_headers) +@CAIRO_HAS_TRACE_TRUE@am__append_178 = $(cairo_trace_cxx_sources) +@CAIRO_HAS_TRACE_TRUE@am__append_179 = $(cairo_trace_sources) +@CAIRO_HAS_INTERPRETER_TRUE@am__append_180 = $(cairo_interpreter_private) $(cairo_interpreter_headers) +@CAIRO_HAS_INTERPRETER_TRUE@am__append_181 = $(cairo_interpreter_cxx_sources) +@CAIRO_HAS_INTERPRETER_TRUE@am__append_182 = $(cairo_interpreter_sources) +@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_183 = $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers) +@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_184 = $(cairo_symbol_lookup_cxx_sources) +@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_185 = $(cairo_symbol_lookup_sources) +@CROSS_COMPILING_FALSE@am__append_186 = check-link$(EXEEXT) subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/aclocal.cairo.m4 \ @@ -371,9 +366,9 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = cairo.pc cairo-xlib.pc cairo-xlib-xrender.pc \ cairo-xcb.pc cairo-xlib-xcb.pc cairo-xcb-shm.pc cairo-qt.pc \ cairo-quartz.pc cairo-quartz-font.pc cairo-quartz-image.pc \ - cairo-win32.pc cairo-win32-font.pc cairo-skia.pc cairo-os2.pc \ - cairo-beos.pc cairo-drm.pc cairo-gallium.pc cairo-png.pc \ - cairo-gl.pc cairo-glesv2.pc cairo-glesv3.pc cairo-cogl.pc \ + cairo-win32.pc cairo-win32-font.pc cairo-os2.pc cairo-beos.pc \ + cairo-drm.pc cairo-gallium.pc cairo-png.pc cairo-gl.pc \ + cairo-glesv2.pc cairo-glesv3.pc cairo-cogl.pc \ cairo-directfb.pc cairo-vg.pc cairo-egl.pc cairo-glx.pc \ cairo-wgl.pc cairo-script.pc cairo-ft.pc cairo-fc.pc \ cairo-ps.pc cairo-pdf.pc cairo-svg.pc cairo-tee.pc \ @@ -413,55 +408,54 @@ am__DEPENDENCIES_1 = @BUILD_CXX_TRUE@am__DEPENDENCIES_2 = libcairo_cxx.la am__libcairo_la_SOURCES_DIST = cairo.h cairo-deprecated.h cairo-xlib.h \ cairo-xlib-xrender.h cairo-xcb.h cairo-qt.h cairo-quartz.h \ - cairo-quartz-image.h cairo-win32.h cairo-skia.h cairo-os2.h \ - cairo-beos.h cairo-drm.h cairo-gl.h cairo-cogl.h \ - cairo-directfb.h cairo-vg.h cairo-script.h cairo-ft.h \ - cairo-ps.h cairo-pdf.h cairo-svg.h cairo-tee.h cairo-xml.h \ - cairoint.h cairo-analysis-surface-private.h \ - cairo-arc-private.h cairo-array-private.h \ - cairo-atomic-private.h cairo-backend-private.h \ - cairo-box-inline.h cairo-boxes-private.h cairo-cache-private.h \ + cairo-quartz-image.h cairo-win32.h cairo-os2.h cairo-beos.h \ + cairo-drm.h cairo-gl.h cairo-cogl.h cairo-directfb.h \ + cairo-vg.h cairo-script.h cairo-ft.h cairo-ps.h cairo-pdf.h \ + cairo-svg.h cairo-tee.h cairo-xml.h cairoint.h \ + cairo-analysis-surface-private.h cairo-arc-private.h \ + cairo-array-private.h cairo-atomic-private.h \ + cairo-backend-private.h cairo-box-inline.h \ + cairo-boxes-private.h cairo-cache-private.h \ cairo-clip-inline.h cairo-clip-private.h \ cairo-combsort-inline.h cairo-compiler-private.h \ + cairo-composite-rectangles-private.h \ cairo-compositor-private.h cairo-contour-inline.h \ - cairo-contour-private.h cairo-composite-rectangles-private.h \ - cairo-damage-private.h cairo-default-context-private.h \ - cairo-device-private.h cairo-error-inline.h \ - cairo-error-private.h cairo-fixed-private.h \ - cairo-fixed-type-private.h cairo-freelist-private.h \ - cairo-freelist-type-private.h cairo-freed-pool-private.h \ - cairo-fontconfig-private.h cairo-gstate-private.h \ - cairo-hash-private.h cairo-image-info-private.h \ - cairo-image-surface-inline.h cairo-image-surface-private.h \ - cairo-line-inline.h cairo-line-private.h cairo-list-inline.h \ - cairo-list-private.h cairo-malloc-private.h \ - cairo-mempool-private.h cairo-mutex-impl-private.h \ - cairo-mutex-list-private.h cairo-mutex-private.h \ - cairo-mutex-type-private.h cairo-output-stream-private.h \ - cairo-paginated-private.h cairo-paginated-surface-private.h \ - cairo-path-fixed-private.h cairo-path-private.h \ - cairo-pattern-inline.h cairo-pattern-private.h \ - cairo-pixman-private.h cairo-private.h \ + cairo-contour-private.h cairo-damage-private.h \ + cairo-default-context-private.h cairo-device-private.h \ + cairo-error-inline.h cairo-error-private.h \ + cairo-fixed-private.h cairo-fixed-type-private.h \ + cairo-fontconfig-private.h cairo-freed-pool-private.h \ + cairo-freelist-private.h cairo-freelist-type-private.h \ + cairo-gstate-private.h cairo-hash-private.h \ + cairo-image-info-private.h cairo-image-surface-inline.h \ + cairo-image-surface-private.h cairo-line-inline.h \ + cairo-line-private.h cairo-list-inline.h cairo-list-private.h \ + cairo-malloc-private.h cairo-mempool-private.h \ + cairo-mutex-impl-private.h cairo-mutex-list-private.h \ + cairo-mutex-private.h cairo-mutex-type-private.h \ + cairo-output-stream-private.h cairo-paginated-private.h \ + cairo-paginated-surface-private.h cairo-path-fixed-private.h \ + cairo-path-private.h cairo-pattern-inline.h \ + cairo-pattern-private.h cairo-pixman-private.h cairo-private.h \ cairo-recording-surface-inline.h \ cairo-recording-surface-private.h \ cairo-reference-count-private.h cairo-region-private.h \ cairo-rtree-private.h cairo-scaled-font-private.h \ - cairo-slope-private.h cairo-spans-private.h \ - cairo-spans-compositor-private.h cairo-stroke-dash-private.h \ - cairo-surface-inline.h cairo-surface-private.h \ + cairo-slope-private.h cairo-spans-compositor-private.h \ + cairo-spans-private.h cairo-stroke-dash-private.h \ cairo-surface-backend-private.h \ cairo-surface-clipper-private.h \ - cairo-surface-fallback-private.h \ + cairo-surface-fallback-private.h cairo-surface-inline.h \ cairo-surface-observer-inline.h \ cairo-surface-observer-private.h \ - cairo-surface-offset-private.h \ - cairo-surface-subsurface-inline.h \ - cairo-surface-subsurface-private.h \ + cairo-surface-offset-private.h cairo-surface-private.h \ cairo-surface-snapshot-inline.h \ cairo-surface-snapshot-private.h \ + cairo-surface-subsurface-inline.h \ + cairo-surface-subsurface-private.h \ cairo-surface-wrapper-private.h cairo-time-private.h \ - cairo-types-private.h cairo-traps-private.h \ - cairo-tristrip-private.h cairo-user-font-private.h \ + cairo-traps-private.h cairo-tristrip-private.h \ + cairo-types-private.h cairo-user-font-private.h \ cairo-wideint-private.h cairo-wideint-type-private.h \ cairo-scaled-font-subsets-private.h \ cairo-truetype-subset-private.h cairo-type1-private.h \ @@ -470,9 +464,8 @@ am__libcairo_la_SOURCES_DIST = cairo.h cairo-deprecated.h cairo-xlib.h \ cairo-tag-attributes-private.h cairo-xlib-private.h \ cairo-xlib-surface-private.h cairo-xlib-xrender-private.h \ cairo-xcb-private.h cairo-quartz-private.h \ - win32/cairo-win32-private.h skia/cairo-skia-private.h \ - cairo-os2-private.h drm/cairo-drm-private.h \ - drm/cairo-drm-intel-private.h \ + win32/cairo-win32-private.h cairo-os2-private.h \ + drm/cairo-drm-private.h drm/cairo-drm-intel-private.h \ drm/cairo-drm-intel-brw-defines.h \ drm/cairo-drm-intel-brw-structs.h drm/cairo-drm-intel-brw-eu.h \ drm/cairo-drm-intel-command-private.h \ @@ -490,47 +483,46 @@ am__libcairo_la_SOURCES_DIST = cairo.h cairo-deprecated.h cairo-xlib.h \ test-null-compositor-surface.h test-paginated-surface.h \ cairo-tee-surface-private.h cairo-analysis-surface.c \ cairo-arc.c cairo-array.c cairo-atomic.c cairo-base64-stream.c \ - cairo-base85-stream.c cairo-bentley-ottmann.c \ - cairo-bentley-ottmann-rectangular.c \ - cairo-bentley-ottmann-rectilinear.c \ - cairo-botor-scan-converter.c cairo-boxes.c \ - cairo-boxes-intersect.c cairo.c cairo-cache.c cairo-clip.c \ - cairo-clip-boxes.c cairo-clip-polygon.c cairo-clip-region.c \ - cairo-clip-surface.c cairo-color.c \ + cairo-base85-stream.c cairo-bentley-ottmann-rectangular.c \ + cairo-bentley-ottmann-rectilinear.c cairo-bentley-ottmann.c \ + cairo-botor-scan-converter.c cairo-boxes-intersect.c \ + cairo-boxes.c cairo-cache.c cairo-clip-boxes.c \ + cairo-clip-polygon.c cairo-clip-region.c cairo-clip-surface.c \ + cairo-clip-tor-scan-converter.c cairo-clip.c cairo-color.c \ cairo-composite-rectangles.c cairo-compositor.c \ cairo-contour.c cairo-damage.c cairo-debug.c \ cairo-default-context.c cairo-device.c cairo-error.c \ - cairo-fallback-compositor.c cairo-fixed.c cairo-font-face.c \ - cairo-font-face-twin.c cairo-font-face-twin-data.c \ - cairo-font-options.c cairo-freelist.c cairo-freed-pool.c \ - cairo-gstate.c cairo-hash.c cairo-hull.c \ + cairo-fallback-compositor.c cairo-fixed.c \ + cairo-font-face-twin-data.c cairo-font-face-twin.c \ + cairo-font-face.c cairo-font-options.c cairo-freed-pool.c \ + cairo-freelist.c cairo-gstate.c cairo-hash.c cairo-hull.c \ cairo-image-compositor.c cairo-image-info.c \ cairo-image-source.c cairo-image-surface.c cairo-line.c \ - cairo-lzw.c cairo-matrix.c cairo-mask-compositor.c \ - cairo-mesh-pattern-rasterizer.c cairo-mempool.c cairo-misc.c \ + cairo-lzw.c cairo-mask-compositor.c cairo-matrix.c \ + cairo-mempool.c cairo-mesh-pattern-rasterizer.c cairo-misc.c \ cairo-mono-scan-converter.c cairo-mutex.c \ cairo-no-compositor.c cairo-observer.c cairo-output-stream.c \ - cairo-paginated-surface.c cairo-path-bounds.c cairo-path.c \ + cairo-paginated-surface.c cairo-path-bounds.c \ cairo-path-fill.c cairo-path-fixed.c cairo-path-in-fill.c \ - cairo-path-stroke.c cairo-path-stroke-boxes.c \ - cairo-path-stroke-polygon.c cairo-path-stroke-traps.c \ - cairo-path-stroke-tristrip.c cairo-pattern.c cairo-pen.c \ - cairo-polygon.c cairo-polygon-intersect.c \ - cairo-polygon-reduce.c cairo-raster-source-pattern.c \ + cairo-path-stroke-boxes.c cairo-path-stroke-polygon.c \ + cairo-path-stroke-traps.c cairo-path-stroke-tristrip.c \ + cairo-path-stroke.c cairo-path.c cairo-pattern.c cairo-pen.c \ + cairo-polygon-intersect.c cairo-polygon-reduce.c \ + cairo-polygon.c cairo-raster-source-pattern.c \ cairo-recording-surface.c cairo-rectangle.c \ cairo-rectangular-scan-converter.c cairo-region.c \ cairo-rtree.c cairo-scaled-font.c \ - cairo-shape-mask-compositor.c cairo-slope.c cairo-spans.c \ - cairo-spans-compositor.c cairo-spline.c cairo-stroke-dash.c \ - cairo-stroke-style.c cairo-surface.c cairo-surface-clipper.c \ - cairo-surface-fallback.c cairo-surface-observer.c \ - cairo-surface-offset.c cairo-surface-snapshot.c \ - cairo-surface-subsurface.c cairo-surface-wrapper.c \ - cairo-time.c cairo-tor-scan-converter.c \ - cairo-tor22-scan-converter.c cairo-clip-tor-scan-converter.c \ - cairo-toy-font-face.c cairo-traps.c cairo-tristrip.c \ - cairo-traps-compositor.c cairo-unicode.c cairo-user-font.c \ - cairo-version.c cairo-wideint.c cairo-cff-subset.c \ + cairo-shape-mask-compositor.c cairo-slope.c \ + cairo-spans-compositor.c cairo-spans.c cairo-spline.c \ + cairo-stroke-dash.c cairo-stroke-style.c \ + cairo-surface-clipper.c cairo-surface-fallback.c \ + cairo-surface-observer.c cairo-surface-offset.c \ + cairo-surface-snapshot.c cairo-surface-subsurface.c \ + cairo-surface-wrapper.c cairo-surface.c cairo-time.c \ + cairo-tor-scan-converter.c cairo-tor22-scan-converter.c \ + cairo-toy-font-face.c cairo-traps-compositor.c cairo-traps.c \ + cairo-tristrip.c cairo-unicode.c cairo-user-font.c \ + cairo-version.c cairo-wideint.c cairo.c cairo-cff-subset.c \ cairo-scaled-font-subsets.c cairo-truetype-subset.c \ cairo-type1-fallback.c cairo-type1-glyph-names.c \ cairo-type1-subset.c cairo-type3-glyph-surface.c \ @@ -564,11 +556,11 @@ am__libcairo_la_SOURCES_DIST = cairo.h cairo-deprecated.h cairo-xlib.h \ drm/cairo-drm-radeon-surface.c drm/cairo-drm-gallium-surface.c \ cairo-png.c cairo-gl-composite.c cairo-gl-device.c \ cairo-gl-dispatch.c cairo-gl-glyphs.c cairo-gl-gradient.c \ - cairo-gl-info.c cairo-gl-operand.c cairo-gl-shaders.c \ - cairo-gl-msaa-compositor.c cairo-gl-spans-compositor.c \ - cairo-gl-traps-compositor.c cairo-gl-source.c \ - cairo-gl-surface.c cairo-cogl-surface.c cairo-cogl-gradient.c \ - cairo-cogl-context.c cairo-cogl-utils.c \ + cairo-gl-info.c cairo-gl-msaa-compositor.c cairo-gl-operand.c \ + cairo-gl-shaders.c cairo-gl-source.c \ + cairo-gl-spans-compositor.c cairo-gl-surface.c \ + cairo-gl-traps-compositor.c cairo-cogl-surface.c \ + cairo-cogl-gradient.c cairo-cogl-context.c cairo-cogl-utils.c \ cairo-directfb-surface.c cairo-vg-surface.c \ cairo-egl-context.c cairo-glx-context.c cairo-wgl-context.c \ cairo-script-surface.c cairo-ft-font.c cairo-ps-surface.c \ @@ -585,133 +577,132 @@ am__objects_1 = @CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__objects_6 = $(am__objects_1) @CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__objects_7 = $(am__objects_1) @CAIRO_HAS_WIN32_SURFACE_TRUE@am__objects_8 = $(am__objects_1) -@CAIRO_HAS_SKIA_SURFACE_TRUE@am__objects_9 = $(am__objects_1) -@CAIRO_HAS_OS2_SURFACE_TRUE@am__objects_10 = $(am__objects_1) -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__objects_11 = $(am__objects_1) -@CAIRO_HAS_DRM_SURFACE_TRUE@am__objects_12 = $(am__objects_1) -@CAIRO_HAS_GL_SURFACE_TRUE@am__objects_13 = $(am__objects_1) -am__objects_14 = $(am__objects_1) -@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__objects_15 = $(am__objects_14) -@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__objects_16 = $(am__objects_14) -@CAIRO_HAS_COGL_SURFACE_TRUE@am__objects_17 = $(am__objects_1) -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__objects_18 = $(am__objects_1) -@CAIRO_HAS_VG_SURFACE_TRUE@am__objects_19 = $(am__objects_1) -@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__objects_20 = $(am__objects_1) -@CAIRO_HAS_FT_FONT_TRUE@am__objects_21 = $(am__objects_1) -@CAIRO_HAS_PS_SURFACE_TRUE@am__objects_22 = $(am__objects_1) -@CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_23 = $(am__objects_1) -@CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_24 = $(am__objects_1) -@CAIRO_HAS_TEE_SURFACE_TRUE@am__objects_25 = $(am__objects_1) -@CAIRO_HAS_XML_SURFACE_TRUE@am__objects_26 = $(am__objects_1) -am__objects_27 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \ +@CAIRO_HAS_OS2_SURFACE_TRUE@am__objects_9 = $(am__objects_1) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__objects_10 = $(am__objects_1) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__objects_11 = $(am__objects_1) +@CAIRO_HAS_GL_SURFACE_TRUE@am__objects_12 = $(am__objects_1) +am__objects_13 = $(am__objects_1) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__objects_14 = $(am__objects_13) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__objects_15 = $(am__objects_13) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__objects_16 = $(am__objects_1) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__objects_17 = $(am__objects_1) +@CAIRO_HAS_VG_SURFACE_TRUE@am__objects_18 = $(am__objects_1) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__objects_19 = $(am__objects_1) +@CAIRO_HAS_FT_FONT_TRUE@am__objects_20 = $(am__objects_1) +@CAIRO_HAS_PS_SURFACE_TRUE@am__objects_21 = $(am__objects_1) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_22 = $(am__objects_1) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_23 = $(am__objects_1) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__objects_24 = $(am__objects_1) +@CAIRO_HAS_XML_SURFACE_TRUE@am__objects_25 = $(am__objects_1) +am__objects_26 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \ $(am__objects_4) $(am__objects_1) $(am__objects_1) \ $(am__objects_5) $(am__objects_6) $(am__objects_1) \ $(am__objects_7) $(am__objects_8) $(am__objects_1) \ $(am__objects_9) $(am__objects_10) $(am__objects_11) \ - $(am__objects_12) $(am__objects_1) $(am__objects_1) \ - $(am__objects_13) $(am__objects_15) $(am__objects_16) \ - $(am__objects_17) $(am__objects_18) $(am__objects_19) \ - $(am__objects_1) $(am__objects_1) $(am__objects_1) \ - $(am__objects_20) $(am__objects_21) $(am__objects_1) \ + $(am__objects_1) $(am__objects_1) $(am__objects_12) \ + $(am__objects_14) $(am__objects_15) $(am__objects_16) \ + $(am__objects_17) $(am__objects_18) $(am__objects_1) \ + $(am__objects_1) $(am__objects_1) $(am__objects_19) \ + $(am__objects_20) $(am__objects_1) $(am__objects_21) \ $(am__objects_22) $(am__objects_23) $(am__objects_24) \ - $(am__objects_25) $(am__objects_26) $(am__objects_1) -am__objects_28 = $(am__objects_1) $(am__objects_1) -@CAIRO_HAS_TEST_SURFACES_TRUE@am__objects_29 = $(am__objects_1) -am__objects_30 = $(am__objects_28) $(am__objects_2) $(am__objects_1) \ + $(am__objects_25) $(am__objects_1) +am__objects_27 = $(am__objects_1) $(am__objects_1) +@CAIRO_HAS_TEST_SURFACES_TRUE@am__objects_28 = $(am__objects_1) +am__objects_29 = $(am__objects_27) $(am__objects_2) $(am__objects_1) \ $(am__objects_4) $(am__objects_1) $(am__objects_1) \ $(am__objects_1) $(am__objects_6) $(am__objects_1) \ $(am__objects_1) $(am__objects_8) $(am__objects_1) \ - $(am__objects_9) $(am__objects_10) $(am__objects_1) \ - $(am__objects_12) $(am__objects_1) $(am__objects_1) \ - $(am__objects_13) $(am__objects_15) $(am__objects_16) \ - $(am__objects_17) $(am__objects_1) $(am__objects_1) \ + $(am__objects_9) $(am__objects_1) $(am__objects_11) \ + $(am__objects_1) $(am__objects_1) $(am__objects_12) \ + $(am__objects_14) $(am__objects_15) $(am__objects_16) \ $(am__objects_1) $(am__objects_1) $(am__objects_1) \ - $(am__objects_20) $(am__objects_21) $(am__objects_1) \ - $(am__objects_22) $(am__objects_23) $(am__objects_24) \ - $(am__objects_29) $(am__objects_25) $(am__objects_1) \ + $(am__objects_1) $(am__objects_1) $(am__objects_19) \ + $(am__objects_20) $(am__objects_1) $(am__objects_21) \ + $(am__objects_22) $(am__objects_23) $(am__objects_28) \ + $(am__objects_24) $(am__objects_1) $(am__objects_1) \ $(am__objects_1) $(am__objects_1) $(am__objects_1) \ - $(am__objects_1) $(am__objects_1) -am__objects_31 = cairo-cff-subset.lo cairo-scaled-font-subsets.lo \ + $(am__objects_1) +am__objects_30 = cairo-cff-subset.lo cairo-scaled-font-subsets.lo \ cairo-truetype-subset.lo cairo-type1-fallback.lo \ cairo-type1-glyph-names.lo cairo-type1-subset.lo \ cairo-type3-glyph-surface.lo -am__objects_32 = cairo-pdf-operators.lo cairo-pdf-shading.lo \ +am__objects_31 = cairo-pdf-operators.lo cairo-pdf-shading.lo \ cairo-tag-attributes.lo -am__objects_33 = cairo-deflate-stream.lo -am__objects_34 = cairo-analysis-surface.lo cairo-arc.lo cairo-array.lo \ +am__objects_32 = cairo-deflate-stream.lo +am__objects_33 = cairo-analysis-surface.lo cairo-arc.lo cairo-array.lo \ cairo-atomic.lo cairo-base64-stream.lo cairo-base85-stream.lo \ - cairo-bentley-ottmann.lo cairo-bentley-ottmann-rectangular.lo \ - cairo-bentley-ottmann-rectilinear.lo \ - cairo-botor-scan-converter.lo cairo-boxes.lo \ - cairo-boxes-intersect.lo cairo.lo cairo-cache.lo cairo-clip.lo \ - cairo-clip-boxes.lo cairo-clip-polygon.lo cairo-clip-region.lo \ - cairo-clip-surface.lo cairo-color.lo \ - cairo-composite-rectangles.lo cairo-compositor.lo \ - cairo-contour.lo cairo-damage.lo cairo-debug.lo \ - cairo-default-context.lo cairo-device.lo cairo-error.lo \ - cairo-fallback-compositor.lo cairo-fixed.lo cairo-font-face.lo \ - cairo-font-face-twin.lo cairo-font-face-twin-data.lo \ - cairo-font-options.lo cairo-freelist.lo cairo-freed-pool.lo \ - cairo-gstate.lo cairo-hash.lo cairo-hull.lo \ + cairo-bentley-ottmann-rectangular.lo \ + cairo-bentley-ottmann-rectilinear.lo cairo-bentley-ottmann.lo \ + cairo-botor-scan-converter.lo cairo-boxes-intersect.lo \ + cairo-boxes.lo cairo-cache.lo cairo-clip-boxes.lo \ + cairo-clip-polygon.lo cairo-clip-region.lo \ + cairo-clip-surface.lo cairo-clip-tor-scan-converter.lo \ + cairo-clip.lo cairo-color.lo cairo-composite-rectangles.lo \ + cairo-compositor.lo cairo-contour.lo cairo-damage.lo \ + cairo-debug.lo cairo-default-context.lo cairo-device.lo \ + cairo-error.lo cairo-fallback-compositor.lo cairo-fixed.lo \ + cairo-font-face-twin-data.lo cairo-font-face-twin.lo \ + cairo-font-face.lo cairo-font-options.lo cairo-freed-pool.lo \ + cairo-freelist.lo cairo-gstate.lo cairo-hash.lo cairo-hull.lo \ cairo-image-compositor.lo cairo-image-info.lo \ cairo-image-source.lo cairo-image-surface.lo cairo-line.lo \ - cairo-lzw.lo cairo-matrix.lo cairo-mask-compositor.lo \ - cairo-mesh-pattern-rasterizer.lo cairo-mempool.lo \ + cairo-lzw.lo cairo-mask-compositor.lo cairo-matrix.lo \ + cairo-mempool.lo cairo-mesh-pattern-rasterizer.lo \ cairo-misc.lo cairo-mono-scan-converter.lo cairo-mutex.lo \ cairo-no-compositor.lo cairo-observer.lo \ cairo-output-stream.lo cairo-paginated-surface.lo \ - cairo-path-bounds.lo cairo-path.lo cairo-path-fill.lo \ - cairo-path-fixed.lo cairo-path-in-fill.lo cairo-path-stroke.lo \ - cairo-path-stroke-boxes.lo cairo-path-stroke-polygon.lo \ - cairo-path-stroke-traps.lo cairo-path-stroke-tristrip.lo \ - cairo-pattern.lo cairo-pen.lo cairo-polygon.lo \ + cairo-path-bounds.lo cairo-path-fill.lo cairo-path-fixed.lo \ + cairo-path-in-fill.lo cairo-path-stroke-boxes.lo \ + cairo-path-stroke-polygon.lo cairo-path-stroke-traps.lo \ + cairo-path-stroke-tristrip.lo cairo-path-stroke.lo \ + cairo-path.lo cairo-pattern.lo cairo-pen.lo \ cairo-polygon-intersect.lo cairo-polygon-reduce.lo \ - cairo-raster-source-pattern.lo cairo-recording-surface.lo \ - cairo-rectangle.lo cairo-rectangular-scan-converter.lo \ - cairo-region.lo cairo-rtree.lo cairo-scaled-font.lo \ - cairo-shape-mask-compositor.lo cairo-slope.lo cairo-spans.lo \ - cairo-spans-compositor.lo cairo-spline.lo cairo-stroke-dash.lo \ - cairo-stroke-style.lo cairo-surface.lo \ + cairo-polygon.lo cairo-raster-source-pattern.lo \ + cairo-recording-surface.lo cairo-rectangle.lo \ + cairo-rectangular-scan-converter.lo cairo-region.lo \ + cairo-rtree.lo cairo-scaled-font.lo \ + cairo-shape-mask-compositor.lo cairo-slope.lo \ + cairo-spans-compositor.lo cairo-spans.lo cairo-spline.lo \ + cairo-stroke-dash.lo cairo-stroke-style.lo \ cairo-surface-clipper.lo cairo-surface-fallback.lo \ cairo-surface-observer.lo cairo-surface-offset.lo \ cairo-surface-snapshot.lo cairo-surface-subsurface.lo \ - cairo-surface-wrapper.lo cairo-time.lo \ + cairo-surface-wrapper.lo cairo-surface.lo cairo-time.lo \ cairo-tor-scan-converter.lo cairo-tor22-scan-converter.lo \ - cairo-clip-tor-scan-converter.lo cairo-toy-font-face.lo \ - cairo-traps.lo cairo-tristrip.lo cairo-traps-compositor.lo \ - cairo-unicode.lo cairo-user-font.lo cairo-version.lo \ - cairo-wideint.lo $(am__objects_31) $(am__objects_32) \ - $(am__objects_33) -am__objects_35 = cairo-xlib-display.lo cairo-xlib-core-compositor.lo \ + cairo-toy-font-face.lo cairo-traps-compositor.lo \ + cairo-traps.lo cairo-tristrip.lo cairo-unicode.lo \ + cairo-user-font.lo cairo-version.lo cairo-wideint.lo cairo.lo \ + $(am__objects_30) $(am__objects_31) $(am__objects_32) +am__objects_34 = cairo-xlib-display.lo cairo-xlib-core-compositor.lo \ cairo-xlib-fallback-compositor.lo \ cairo-xlib-render-compositor.lo cairo-xlib-screen.lo \ cairo-xlib-source.lo cairo-xlib-surface.lo \ cairo-xlib-surface-shm.lo cairo-xlib-visual.lo \ cairo-xlib-xcb-surface.lo -@CAIRO_HAS_XLIB_SURFACE_TRUE@am__objects_36 = $(am__objects_35) -am__objects_37 = cairo-xcb-connection.lo cairo-xcb-connection-core.lo \ +@CAIRO_HAS_XLIB_SURFACE_TRUE@am__objects_35 = $(am__objects_34) +am__objects_36 = cairo-xcb-connection.lo cairo-xcb-connection-core.lo \ cairo-xcb-connection-render.lo cairo-xcb-connection-shm.lo \ cairo-xcb-screen.lo cairo-xcb-shm.lo cairo-xcb-surface.lo \ cairo-xcb-surface-core.lo cairo-xcb-surface-render.lo \ cairo-xcb-resources.lo -@CAIRO_HAS_XCB_SURFACE_TRUE@am__objects_38 = $(am__objects_37) -am__objects_39 = cairo-quartz-surface.lo -@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__objects_40 = $(am__objects_39) -am__objects_41 = cairo-quartz-font.lo -@CAIRO_HAS_QUARTZ_FONT_TRUE@am__objects_42 = $(am__objects_41) -am__objects_43 = cairo-quartz-image-surface.lo -@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__objects_44 = \ -@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@ $(am__objects_43) -am__objects_45 = cairo-win32-debug.lo cairo-win32-device.lo \ +@CAIRO_HAS_XCB_SURFACE_TRUE@am__objects_37 = $(am__objects_36) +am__objects_38 = cairo-quartz-surface.lo +@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__objects_39 = $(am__objects_38) +am__objects_40 = cairo-quartz-font.lo +@CAIRO_HAS_QUARTZ_FONT_TRUE@am__objects_41 = $(am__objects_40) +am__objects_42 = cairo-quartz-image-surface.lo +@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__objects_43 = \ +@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@ $(am__objects_42) +am__objects_44 = cairo-win32-debug.lo cairo-win32-device.lo \ cairo-win32-gdi-compositor.lo cairo-win32-system.lo \ cairo-win32-surface.lo cairo-win32-display-surface.lo \ cairo-win32-printing-surface.lo -@CAIRO_HAS_WIN32_SURFACE_TRUE@am__objects_46 = $(am__objects_45) -am__objects_47 = cairo-win32-font.lo -@CAIRO_HAS_WIN32_FONT_TRUE@am__objects_48 = $(am__objects_47) -am__objects_49 = cairo-os2-surface.lo -@CAIRO_HAS_OS2_SURFACE_TRUE@am__objects_50 = $(am__objects_49) -am__objects_51 = cairo-drm.lo cairo-drm-bo.lo cairo-drm-surface.lo \ +@CAIRO_HAS_WIN32_SURFACE_TRUE@am__objects_45 = $(am__objects_44) +am__objects_46 = cairo-win32-font.lo +@CAIRO_HAS_WIN32_FONT_TRUE@am__objects_47 = $(am__objects_46) +am__objects_48 = cairo-os2-surface.lo +@CAIRO_HAS_OS2_SURFACE_TRUE@am__objects_49 = $(am__objects_48) +am__objects_50 = cairo-drm.lo cairo-drm-bo.lo cairo-drm-surface.lo \ cairo-drm-intel.lo cairo-drm-intel-debug.lo \ cairo-drm-intel-surface.lo cairo-drm-i915-surface.lo \ cairo-drm-i915-glyphs.lo cairo-drm-i915-shader.lo \ @@ -720,69 +711,69 @@ am__objects_51 = cairo-drm.lo cairo-drm-bo.lo cairo-drm-surface.lo \ cairo-drm-i965-spans.lo cairo-drm-intel-brw-eu.lo \ cairo-drm-intel-brw-eu-emit.lo cairo-drm-intel-brw-eu-util.lo \ cairo-drm-radeon.lo cairo-drm-radeon-surface.lo -@CAIRO_HAS_DRM_SURFACE_TRUE@am__objects_52 = $(am__objects_51) -am__objects_53 = cairo-drm-gallium-surface.lo -@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__objects_54 = $(am__objects_53) -am__objects_55 = cairo-png.lo -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__objects_56 = $(am__objects_55) -am__objects_57 = cairo-gl-composite.lo cairo-gl-device.lo \ +@CAIRO_HAS_DRM_SURFACE_TRUE@am__objects_51 = $(am__objects_50) +am__objects_52 = cairo-drm-gallium-surface.lo +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__objects_53 = $(am__objects_52) +am__objects_54 = cairo-png.lo +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__objects_55 = $(am__objects_54) +am__objects_56 = cairo-gl-composite.lo cairo-gl-device.lo \ cairo-gl-dispatch.lo cairo-gl-glyphs.lo cairo-gl-gradient.lo \ - cairo-gl-info.lo cairo-gl-operand.lo cairo-gl-shaders.lo \ - cairo-gl-msaa-compositor.lo cairo-gl-spans-compositor.lo \ - cairo-gl-traps-compositor.lo cairo-gl-source.lo \ - cairo-gl-surface.lo -@CAIRO_HAS_GL_SURFACE_TRUE@am__objects_58 = $(am__objects_57) -am__objects_59 = $(am__objects_57) -@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__objects_60 = $(am__objects_59) -@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__objects_61 = $(am__objects_59) -am__objects_62 = cairo-cogl-surface.lo cairo-cogl-gradient.lo \ + cairo-gl-info.lo cairo-gl-msaa-compositor.lo \ + cairo-gl-operand.lo cairo-gl-shaders.lo cairo-gl-source.lo \ + cairo-gl-spans-compositor.lo cairo-gl-surface.lo \ + cairo-gl-traps-compositor.lo +@CAIRO_HAS_GL_SURFACE_TRUE@am__objects_57 = $(am__objects_56) +am__objects_58 = $(am__objects_56) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__objects_59 = $(am__objects_58) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__objects_60 = $(am__objects_58) +am__objects_61 = cairo-cogl-surface.lo cairo-cogl-gradient.lo \ cairo-cogl-context.lo cairo-cogl-utils.lo -@CAIRO_HAS_COGL_SURFACE_TRUE@am__objects_63 = $(am__objects_62) -am__objects_64 = cairo-directfb-surface.lo -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__objects_65 = $(am__objects_64) -am__objects_66 = cairo-vg-surface.lo -@CAIRO_HAS_VG_SURFACE_TRUE@am__objects_67 = $(am__objects_66) -am__objects_68 = cairo-egl-context.lo -@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__objects_69 = $(am__objects_68) -am__objects_70 = cairo-glx-context.lo -@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__objects_71 = $(am__objects_70) -am__objects_72 = cairo-wgl-context.lo -@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__objects_73 = $(am__objects_72) -am__objects_74 = cairo-script-surface.lo -@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__objects_75 = $(am__objects_74) -am__objects_76 = cairo-ft-font.lo -@CAIRO_HAS_FT_FONT_TRUE@am__objects_77 = $(am__objects_76) -am__objects_78 = cairo-ps-surface.lo -@CAIRO_HAS_PS_SURFACE_TRUE@am__objects_79 = $(am__objects_78) -am__objects_80 = cairo-pdf-surface.lo cairo-pdf-interchange.lo \ +@CAIRO_HAS_COGL_SURFACE_TRUE@am__objects_62 = $(am__objects_61) +am__objects_63 = cairo-directfb-surface.lo +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__objects_64 = $(am__objects_63) +am__objects_65 = cairo-vg-surface.lo +@CAIRO_HAS_VG_SURFACE_TRUE@am__objects_66 = $(am__objects_65) +am__objects_67 = cairo-egl-context.lo +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__objects_68 = $(am__objects_67) +am__objects_69 = cairo-glx-context.lo +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__objects_70 = $(am__objects_69) +am__objects_71 = cairo-wgl-context.lo +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__objects_72 = $(am__objects_71) +am__objects_73 = cairo-script-surface.lo +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__objects_74 = $(am__objects_73) +am__objects_75 = cairo-ft-font.lo +@CAIRO_HAS_FT_FONT_TRUE@am__objects_76 = $(am__objects_75) +am__objects_77 = cairo-ps-surface.lo +@CAIRO_HAS_PS_SURFACE_TRUE@am__objects_78 = $(am__objects_77) +am__objects_79 = cairo-pdf-surface.lo cairo-pdf-interchange.lo \ cairo-tag-stack.lo -@CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_81 = $(am__objects_80) -am__objects_82 = cairo-svg-surface.lo -@CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_83 = $(am__objects_82) -am__objects_84 = test-compositor-surface.lo \ +@CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_80 = $(am__objects_79) +am__objects_81 = cairo-svg-surface.lo +@CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_82 = $(am__objects_81) +am__objects_83 = test-compositor-surface.lo \ test-null-compositor-surface.lo \ test-base-compositor-surface.lo test-paginated-surface.lo -@CAIRO_HAS_TEST_SURFACES_TRUE@am__objects_85 = $(am__objects_84) -am__objects_86 = cairo-tee-surface.lo -@CAIRO_HAS_TEE_SURFACE_TRUE@am__objects_87 = $(am__objects_86) -am__objects_88 = cairo-xml-surface.lo -@CAIRO_HAS_XML_SURFACE_TRUE@am__objects_89 = $(am__objects_88) -am__objects_90 = $(am__objects_34) $(am__objects_36) $(am__objects_1) \ - $(am__objects_38) $(am__objects_1) $(am__objects_1) \ - $(am__objects_1) $(am__objects_40) $(am__objects_42) \ - $(am__objects_44) $(am__objects_46) $(am__objects_48) \ - $(am__objects_1) $(am__objects_50) $(am__objects_1) \ - $(am__objects_52) $(am__objects_54) $(am__objects_56) \ - $(am__objects_58) $(am__objects_60) $(am__objects_61) \ - $(am__objects_63) $(am__objects_65) $(am__objects_67) \ - $(am__objects_69) $(am__objects_71) $(am__objects_73) \ - $(am__objects_75) $(am__objects_77) $(am__objects_1) \ - $(am__objects_79) $(am__objects_81) $(am__objects_83) \ - $(am__objects_85) $(am__objects_87) $(am__objects_89) \ +@CAIRO_HAS_TEST_SURFACES_TRUE@am__objects_84 = $(am__objects_83) +am__objects_85 = cairo-tee-surface.lo +@CAIRO_HAS_TEE_SURFACE_TRUE@am__objects_86 = $(am__objects_85) +am__objects_87 = cairo-xml-surface.lo +@CAIRO_HAS_XML_SURFACE_TRUE@am__objects_88 = $(am__objects_87) +am__objects_89 = $(am__objects_33) $(am__objects_35) $(am__objects_1) \ + $(am__objects_37) $(am__objects_1) $(am__objects_1) \ + $(am__objects_1) $(am__objects_39) $(am__objects_41) \ + $(am__objects_43) $(am__objects_45) $(am__objects_47) \ + $(am__objects_49) $(am__objects_1) $(am__objects_51) \ + $(am__objects_53) $(am__objects_55) $(am__objects_57) \ + $(am__objects_59) $(am__objects_60) $(am__objects_62) \ + $(am__objects_64) $(am__objects_66) $(am__objects_68) \ + $(am__objects_70) $(am__objects_72) $(am__objects_74) \ + $(am__objects_76) $(am__objects_1) $(am__objects_78) \ + $(am__objects_80) $(am__objects_82) $(am__objects_84) \ + $(am__objects_86) $(am__objects_88) $(am__objects_1) \ $(am__objects_1) $(am__objects_1) $(am__objects_1) \ - $(am__objects_1) $(am__objects_1) -am_libcairo_la_OBJECTS = $(am__objects_27) $(am__objects_30) \ - $(am__objects_90) + $(am__objects_1) +am_libcairo_la_OBJECTS = $(am__objects_26) $(am__objects_29) \ + $(am__objects_89) nodist_libcairo_la_OBJECTS = libcairo_la_OBJECTS = $(am_libcairo_la_OBJECTS) \ $(nodist_libcairo_la_OBJECTS) @@ -795,8 +786,8 @@ libcairo_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(libcairo_la_LDFLAGS) $(LDFLAGS) -o $@ am__libcairo_cxx_la_SOURCES_DIST = cairo.h cairo-deprecated.h \ cairo-xlib.h cairo-xlib-xrender.h cairo-xcb.h cairo-qt.h \ - cairo-quartz.h cairo-quartz-image.h cairo-win32.h cairo-skia.h \ - cairo-os2.h cairo-beos.h cairo-drm.h cairo-gl.h cairo-cogl.h \ + cairo-quartz.h cairo-quartz-image.h cairo-win32.h cairo-os2.h \ + cairo-beos.h cairo-drm.h cairo-gl.h cairo-cogl.h \ cairo-directfb.h cairo-vg.h cairo-script.h cairo-ft.h \ cairo-ps.h cairo-pdf.h cairo-svg.h cairo-tee.h cairo-xml.h \ cairoint.h cairo-analysis-surface-private.h \ @@ -805,45 +796,44 @@ am__libcairo_cxx_la_SOURCES_DIST = cairo.h cairo-deprecated.h \ cairo-box-inline.h cairo-boxes-private.h cairo-cache-private.h \ cairo-clip-inline.h cairo-clip-private.h \ cairo-combsort-inline.h cairo-compiler-private.h \ + cairo-composite-rectangles-private.h \ cairo-compositor-private.h cairo-contour-inline.h \ - cairo-contour-private.h cairo-composite-rectangles-private.h \ - cairo-damage-private.h cairo-default-context-private.h \ - cairo-device-private.h cairo-error-inline.h \ - cairo-error-private.h cairo-fixed-private.h \ - cairo-fixed-type-private.h cairo-freelist-private.h \ - cairo-freelist-type-private.h cairo-freed-pool-private.h \ - cairo-fontconfig-private.h cairo-gstate-private.h \ - cairo-hash-private.h cairo-image-info-private.h \ - cairo-image-surface-inline.h cairo-image-surface-private.h \ - cairo-line-inline.h cairo-line-private.h cairo-list-inline.h \ - cairo-list-private.h cairo-malloc-private.h \ - cairo-mempool-private.h cairo-mutex-impl-private.h \ - cairo-mutex-list-private.h cairo-mutex-private.h \ - cairo-mutex-type-private.h cairo-output-stream-private.h \ - cairo-paginated-private.h cairo-paginated-surface-private.h \ - cairo-path-fixed-private.h cairo-path-private.h \ - cairo-pattern-inline.h cairo-pattern-private.h \ - cairo-pixman-private.h cairo-private.h \ + cairo-contour-private.h cairo-damage-private.h \ + cairo-default-context-private.h cairo-device-private.h \ + cairo-error-inline.h cairo-error-private.h \ + cairo-fixed-private.h cairo-fixed-type-private.h \ + cairo-fontconfig-private.h cairo-freed-pool-private.h \ + cairo-freelist-private.h cairo-freelist-type-private.h \ + cairo-gstate-private.h cairo-hash-private.h \ + cairo-image-info-private.h cairo-image-surface-inline.h \ + cairo-image-surface-private.h cairo-line-inline.h \ + cairo-line-private.h cairo-list-inline.h cairo-list-private.h \ + cairo-malloc-private.h cairo-mempool-private.h \ + cairo-mutex-impl-private.h cairo-mutex-list-private.h \ + cairo-mutex-private.h cairo-mutex-type-private.h \ + cairo-output-stream-private.h cairo-paginated-private.h \ + cairo-paginated-surface-private.h cairo-path-fixed-private.h \ + cairo-path-private.h cairo-pattern-inline.h \ + cairo-pattern-private.h cairo-pixman-private.h cairo-private.h \ cairo-recording-surface-inline.h \ cairo-recording-surface-private.h \ cairo-reference-count-private.h cairo-region-private.h \ cairo-rtree-private.h cairo-scaled-font-private.h \ - cairo-slope-private.h cairo-spans-private.h \ - cairo-spans-compositor-private.h cairo-stroke-dash-private.h \ - cairo-surface-inline.h cairo-surface-private.h \ + cairo-slope-private.h cairo-spans-compositor-private.h \ + cairo-spans-private.h cairo-stroke-dash-private.h \ cairo-surface-backend-private.h \ cairo-surface-clipper-private.h \ - cairo-surface-fallback-private.h \ + cairo-surface-fallback-private.h cairo-surface-inline.h \ cairo-surface-observer-inline.h \ cairo-surface-observer-private.h \ - cairo-surface-offset-private.h \ - cairo-surface-subsurface-inline.h \ - cairo-surface-subsurface-private.h \ + cairo-surface-offset-private.h cairo-surface-private.h \ cairo-surface-snapshot-inline.h \ cairo-surface-snapshot-private.h \ + cairo-surface-subsurface-inline.h \ + cairo-surface-subsurface-private.h \ cairo-surface-wrapper-private.h cairo-time-private.h \ - cairo-types-private.h cairo-traps-private.h \ - cairo-tristrip-private.h cairo-user-font-private.h \ + cairo-traps-private.h cairo-tristrip-private.h \ + cairo-types-private.h cairo-user-font-private.h \ cairo-wideint-private.h cairo-wideint-type-private.h \ cairo-scaled-font-subsets-private.h \ cairo-truetype-subset-private.h cairo-type1-private.h \ @@ -852,9 +842,8 @@ am__libcairo_cxx_la_SOURCES_DIST = cairo.h cairo-deprecated.h \ cairo-tag-attributes-private.h cairo-xlib-private.h \ cairo-xlib-surface-private.h cairo-xlib-xrender-private.h \ cairo-xcb-private.h cairo-quartz-private.h \ - win32/cairo-win32-private.h skia/cairo-skia-private.h \ - cairo-os2-private.h drm/cairo-drm-private.h \ - drm/cairo-drm-intel-private.h \ + win32/cairo-win32-private.h cairo-os2-private.h \ + drm/cairo-drm-private.h drm/cairo-drm-intel-private.h \ drm/cairo-drm-intel-brw-defines.h \ drm/cairo-drm-intel-brw-structs.h drm/cairo-drm-intel-brw-eu.h \ drm/cairo-drm-intel-command-private.h \ @@ -871,20 +860,16 @@ am__libcairo_cxx_la_SOURCES_DIST = cairo.h cairo-deprecated.h \ test-compositor-surface-private.h \ test-null-compositor-surface.h test-paginated-surface.h \ cairo-tee-surface-private.h cairo-qt-surface.cpp \ - skia/cairo-skia-context.cpp skia/cairo-skia-surface.cpp \ cairo-beos-surface.cpp -am__objects_91 = cairo-qt-surface.lo -@CAIRO_HAS_QT_SURFACE_TRUE@am__objects_92 = $(am__objects_91) -am__objects_93 = cairo-skia-context.lo cairo-skia-surface.lo -@CAIRO_HAS_SKIA_SURFACE_TRUE@am__objects_94 = $(am__objects_93) -am__objects_95 = cairo-beos-surface.lo -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__objects_96 = $(am__objects_95) -am__objects_97 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \ - $(am__objects_1) $(am__objects_1) $(am__objects_92) \ +am__objects_90 = cairo-qt-surface.lo +@CAIRO_HAS_QT_SURFACE_TRUE@am__objects_91 = $(am__objects_90) +am__objects_92 = cairo-beos-surface.lo +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__objects_93 = $(am__objects_92) +am__objects_94 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \ + $(am__objects_1) $(am__objects_1) $(am__objects_91) \ $(am__objects_1) $(am__objects_1) $(am__objects_1) \ - $(am__objects_1) $(am__objects_1) $(am__objects_94) \ - $(am__objects_1) $(am__objects_96) $(am__objects_1) \ $(am__objects_1) $(am__objects_1) $(am__objects_1) \ + $(am__objects_93) $(am__objects_1) $(am__objects_1) \ $(am__objects_1) $(am__objects_1) $(am__objects_1) \ $(am__objects_1) $(am__objects_1) $(am__objects_1) \ $(am__objects_1) $(am__objects_1) $(am__objects_1) \ @@ -892,9 +877,9 @@ am__objects_97 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \ $(am__objects_1) $(am__objects_1) $(am__objects_1) \ $(am__objects_1) $(am__objects_1) $(am__objects_1) \ $(am__objects_1) $(am__objects_1) $(am__objects_1) \ - $(am__objects_1) -am_libcairo_cxx_la_OBJECTS = $(am__objects_27) $(am__objects_30) \ - $(am__objects_97) + $(am__objects_1) $(am__objects_1) $(am__objects_1) +am_libcairo_cxx_la_OBJECTS = $(am__objects_26) $(am__objects_29) \ + $(am__objects_94) libcairo_cxx_la_OBJECTS = $(am_libcairo_cxx_la_OBJECTS) libcairo_cxx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ @@ -968,8 +953,8 @@ am__can_run_installinfo = \ DATA = $(pkgconfig_DATA) am__cairoinclude_HEADERS_DIST = cairo.h cairo-deprecated.h \ cairo-xlib.h cairo-xlib-xrender.h cairo-xcb.h cairo-qt.h \ - cairo-quartz.h cairo-quartz-image.h cairo-win32.h cairo-skia.h \ - cairo-os2.h cairo-beos.h cairo-drm.h cairo-gl.h cairo-cogl.h \ + cairo-quartz.h cairo-quartz-image.h cairo-win32.h cairo-os2.h \ + cairo-beos.h cairo-drm.h cairo-gl.h cairo-cogl.h \ cairo-directfb.h cairo-vg.h cairo-script.h cairo-ft.h \ cairo-ps.h cairo-pdf.h cairo-svg.h cairo-tee.h cairo-xml.h \ $(top_srcdir)/cairo-version.h @@ -1382,7 +1367,6 @@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shm_LIBS = @shm_LIBS@ -skia_DIR = @skia_DIR@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -1415,89 +1399,88 @@ cairo_private = cairoint.h cairo-analysis-surface-private.h \ cairo-box-inline.h cairo-boxes-private.h cairo-cache-private.h \ cairo-clip-inline.h cairo-clip-private.h \ cairo-combsort-inline.h cairo-compiler-private.h \ + cairo-composite-rectangles-private.h \ cairo-compositor-private.h cairo-contour-inline.h \ - cairo-contour-private.h cairo-composite-rectangles-private.h \ - cairo-damage-private.h cairo-default-context-private.h \ - cairo-device-private.h cairo-error-inline.h \ - cairo-error-private.h cairo-fixed-private.h \ - cairo-fixed-type-private.h cairo-freelist-private.h \ - cairo-freelist-type-private.h cairo-freed-pool-private.h \ - cairo-fontconfig-private.h cairo-gstate-private.h \ - cairo-hash-private.h cairo-image-info-private.h \ - cairo-image-surface-inline.h cairo-image-surface-private.h \ - cairo-line-inline.h cairo-line-private.h cairo-list-inline.h \ - cairo-list-private.h cairo-malloc-private.h \ - cairo-mempool-private.h cairo-mutex-impl-private.h \ - cairo-mutex-list-private.h cairo-mutex-private.h \ - cairo-mutex-type-private.h cairo-output-stream-private.h \ - cairo-paginated-private.h cairo-paginated-surface-private.h \ - cairo-path-fixed-private.h cairo-path-private.h \ - cairo-pattern-inline.h cairo-pattern-private.h \ - cairo-pixman-private.h cairo-private.h \ + cairo-contour-private.h cairo-damage-private.h \ + cairo-default-context-private.h cairo-device-private.h \ + cairo-error-inline.h cairo-error-private.h \ + cairo-fixed-private.h cairo-fixed-type-private.h \ + cairo-fontconfig-private.h cairo-freed-pool-private.h \ + cairo-freelist-private.h cairo-freelist-type-private.h \ + cairo-gstate-private.h cairo-hash-private.h \ + cairo-image-info-private.h cairo-image-surface-inline.h \ + cairo-image-surface-private.h cairo-line-inline.h \ + cairo-line-private.h cairo-list-inline.h cairo-list-private.h \ + cairo-malloc-private.h cairo-mempool-private.h \ + cairo-mutex-impl-private.h cairo-mutex-list-private.h \ + cairo-mutex-private.h cairo-mutex-type-private.h \ + cairo-output-stream-private.h cairo-paginated-private.h \ + cairo-paginated-surface-private.h cairo-path-fixed-private.h \ + cairo-path-private.h cairo-pattern-inline.h \ + cairo-pattern-private.h cairo-pixman-private.h cairo-private.h \ cairo-recording-surface-inline.h \ cairo-recording-surface-private.h \ cairo-reference-count-private.h cairo-region-private.h \ cairo-rtree-private.h cairo-scaled-font-private.h \ - cairo-slope-private.h cairo-spans-private.h \ - cairo-spans-compositor-private.h cairo-stroke-dash-private.h \ - cairo-surface-inline.h cairo-surface-private.h \ + cairo-slope-private.h cairo-spans-compositor-private.h \ + cairo-spans-private.h cairo-stroke-dash-private.h \ cairo-surface-backend-private.h \ cairo-surface-clipper-private.h \ - cairo-surface-fallback-private.h \ + cairo-surface-fallback-private.h cairo-surface-inline.h \ cairo-surface-observer-inline.h \ cairo-surface-observer-private.h \ - cairo-surface-offset-private.h \ - cairo-surface-subsurface-inline.h \ - cairo-surface-subsurface-private.h \ + cairo-surface-offset-private.h cairo-surface-private.h \ cairo-surface-snapshot-inline.h \ cairo-surface-snapshot-private.h \ + cairo-surface-subsurface-inline.h \ + cairo-surface-subsurface-private.h \ cairo-surface-wrapper-private.h cairo-time-private.h \ - cairo-types-private.h cairo-traps-private.h \ - cairo-tristrip-private.h cairo-user-font-private.h \ + cairo-traps-private.h cairo-tristrip-private.h \ + cairo-types-private.h cairo-user-font-private.h \ cairo-wideint-private.h cairo-wideint-type-private.h $(NULL) \ $(_cairo_font_subset_private) $(_cairo_pdf_operators_private) cairo_sources = cairo-analysis-surface.c cairo-arc.c cairo-array.c \ cairo-atomic.c cairo-base64-stream.c cairo-base85-stream.c \ - cairo-bentley-ottmann.c cairo-bentley-ottmann-rectangular.c \ - cairo-bentley-ottmann-rectilinear.c \ - cairo-botor-scan-converter.c cairo-boxes.c \ - cairo-boxes-intersect.c cairo.c cairo-cache.c cairo-clip.c \ - cairo-clip-boxes.c cairo-clip-polygon.c cairo-clip-region.c \ - cairo-clip-surface.c cairo-color.c \ + cairo-bentley-ottmann-rectangular.c \ + cairo-bentley-ottmann-rectilinear.c cairo-bentley-ottmann.c \ + cairo-botor-scan-converter.c cairo-boxes-intersect.c \ + cairo-boxes.c cairo-cache.c cairo-clip-boxes.c \ + cairo-clip-polygon.c cairo-clip-region.c cairo-clip-surface.c \ + cairo-clip-tor-scan-converter.c cairo-clip.c cairo-color.c \ cairo-composite-rectangles.c cairo-compositor.c \ cairo-contour.c cairo-damage.c cairo-debug.c \ cairo-default-context.c cairo-device.c cairo-error.c \ - cairo-fallback-compositor.c cairo-fixed.c cairo-font-face.c \ - cairo-font-face-twin.c cairo-font-face-twin-data.c \ - cairo-font-options.c cairo-freelist.c cairo-freed-pool.c \ - cairo-gstate.c cairo-hash.c cairo-hull.c \ + cairo-fallback-compositor.c cairo-fixed.c \ + cairo-font-face-twin-data.c cairo-font-face-twin.c \ + cairo-font-face.c cairo-font-options.c cairo-freed-pool.c \ + cairo-freelist.c cairo-gstate.c cairo-hash.c cairo-hull.c \ cairo-image-compositor.c cairo-image-info.c \ cairo-image-source.c cairo-image-surface.c cairo-line.c \ - cairo-lzw.c cairo-matrix.c cairo-mask-compositor.c \ - cairo-mesh-pattern-rasterizer.c cairo-mempool.c cairo-misc.c \ + cairo-lzw.c cairo-mask-compositor.c cairo-matrix.c \ + cairo-mempool.c cairo-mesh-pattern-rasterizer.c cairo-misc.c \ cairo-mono-scan-converter.c cairo-mutex.c \ cairo-no-compositor.c cairo-observer.c cairo-output-stream.c \ - cairo-paginated-surface.c cairo-path-bounds.c cairo-path.c \ + cairo-paginated-surface.c cairo-path-bounds.c \ cairo-path-fill.c cairo-path-fixed.c cairo-path-in-fill.c \ - cairo-path-stroke.c cairo-path-stroke-boxes.c \ - cairo-path-stroke-polygon.c cairo-path-stroke-traps.c \ - cairo-path-stroke-tristrip.c cairo-pattern.c cairo-pen.c \ - cairo-polygon.c cairo-polygon-intersect.c \ - cairo-polygon-reduce.c cairo-raster-source-pattern.c \ + cairo-path-stroke-boxes.c cairo-path-stroke-polygon.c \ + cairo-path-stroke-traps.c cairo-path-stroke-tristrip.c \ + cairo-path-stroke.c cairo-path.c cairo-pattern.c cairo-pen.c \ + cairo-polygon-intersect.c cairo-polygon-reduce.c \ + cairo-polygon.c cairo-raster-source-pattern.c \ cairo-recording-surface.c cairo-rectangle.c \ cairo-rectangular-scan-converter.c cairo-region.c \ cairo-rtree.c cairo-scaled-font.c \ - cairo-shape-mask-compositor.c cairo-slope.c cairo-spans.c \ - cairo-spans-compositor.c cairo-spline.c cairo-stroke-dash.c \ - cairo-stroke-style.c cairo-surface.c cairo-surface-clipper.c \ - cairo-surface-fallback.c cairo-surface-observer.c \ - cairo-surface-offset.c cairo-surface-snapshot.c \ - cairo-surface-subsurface.c cairo-surface-wrapper.c \ - cairo-time.c cairo-tor-scan-converter.c \ - cairo-tor22-scan-converter.c cairo-clip-tor-scan-converter.c \ - cairo-toy-font-face.c cairo-traps.c cairo-tristrip.c \ - cairo-traps-compositor.c cairo-unicode.c cairo-user-font.c \ - cairo-version.c cairo-wideint.c $(NULL) \ + cairo-shape-mask-compositor.c cairo-slope.c \ + cairo-spans-compositor.c cairo-spans.c cairo-spline.c \ + cairo-stroke-dash.c cairo-stroke-style.c \ + cairo-surface-clipper.c cairo-surface-fallback.c \ + cairo-surface-observer.c cairo-surface-offset.c \ + cairo-surface-snapshot.c cairo-surface-subsurface.c \ + cairo-surface-wrapper.c cairo-surface.c cairo-time.c \ + cairo-tor-scan-converter.c cairo-tor22-scan-converter.c \ + cairo-toy-font-face.c cairo-traps-compositor.c cairo-traps.c \ + cairo-tristrip.c cairo-unicode.c cairo-user-font.c \ + cairo-version.c cairo-wideint.c cairo.c $(NULL) \ $(_cairo_font_subset_sources) $(_cairo_pdf_operators_sources) \ $(_cairo_deflate_stream_sources) _cairo_font_subset_private = \ @@ -1649,13 +1632,13 @@ cairo_gl_sources = cairo-gl-composite.c \ cairo-gl-glyphs.c \ cairo-gl-gradient.c \ cairo-gl-info.c \ + cairo-gl-msaa-compositor.c \ cairo-gl-operand.c \ cairo-gl-shaders.c \ - cairo-gl-msaa-compositor.c \ - cairo-gl-spans-compositor.c \ - cairo-gl-traps-compositor.c \ cairo-gl-source.c \ - cairo-gl-surface.c + cairo-gl-spans-compositor.c \ + cairo-gl-surface.c \ + cairo-gl-traps-compositor.c cairo_glesv2_headers = $(cairo_gl_headers) cairo_glesv2_private = $(cairo_gl_private) @@ -1733,80 +1716,78 @@ supported_cairo_headers = $(cairo_headers) $(cairo_xlib_headers) \ $(cairo_gobject_headers) unsupported_cairo_headers = $(cairo_xlib_xcb_headers) \ $(cairo_qt_headers) $(cairo_quartz_image_headers) \ - $(cairo_skia_headers) $(cairo_os2_headers) \ - $(cairo_beos_headers) $(cairo_drm_headers) \ - $(cairo_gallium_headers) $(cairo_gl_headers) \ - $(cairo_glesv2_headers) $(cairo_glesv3_headers) \ - $(cairo_cogl_headers) $(cairo_directfb_headers) \ - $(cairo_vg_headers) $(cairo_tee_headers) $(cairo_xml_headers) + $(cairo_os2_headers) $(cairo_beos_headers) \ + $(cairo_drm_headers) $(cairo_gallium_headers) \ + $(cairo_gl_headers) $(cairo_glesv2_headers) \ + $(cairo_glesv3_headers) $(cairo_cogl_headers) \ + $(cairo_directfb_headers) $(cairo_vg_headers) \ + $(cairo_tee_headers) $(cairo_xml_headers) all_cairo_headers = $(cairo_headers) $(cairo_xlib_headers) \ $(cairo_xlib_xrender_headers) $(cairo_xcb_headers) \ $(cairo_xlib_xcb_headers) $(cairo_xcb_shm_headers) \ $(cairo_qt_headers) $(cairo_quartz_headers) \ $(cairo_quartz_font_headers) $(cairo_quartz_image_headers) \ $(cairo_win32_headers) $(cairo_win32_font_headers) \ - $(cairo_skia_headers) $(cairo_os2_headers) \ - $(cairo_beos_headers) $(cairo_drm_headers) \ - $(cairo_gallium_headers) $(cairo_png_headers) \ - $(cairo_gl_headers) $(cairo_glesv2_headers) \ - $(cairo_glesv3_headers) $(cairo_cogl_headers) \ - $(cairo_directfb_headers) $(cairo_vg_headers) \ - $(cairo_egl_headers) $(cairo_glx_headers) $(cairo_wgl_headers) \ - $(cairo_script_headers) $(cairo_ft_headers) \ - $(cairo_fc_headers) $(cairo_ps_headers) $(cairo_pdf_headers) \ - $(cairo_svg_headers) $(cairo_image_headers) \ - $(cairo_mime_headers) $(cairo_recording_headers) \ - $(cairo_observer_headers) $(cairo_tee_headers) \ - $(cairo_xml_headers) $(cairo_user_headers) \ - $(cairo_gobject_headers) + $(cairo_os2_headers) $(cairo_beos_headers) \ + $(cairo_drm_headers) $(cairo_gallium_headers) \ + $(cairo_png_headers) $(cairo_gl_headers) \ + $(cairo_glesv2_headers) $(cairo_glesv3_headers) \ + $(cairo_cogl_headers) $(cairo_directfb_headers) \ + $(cairo_vg_headers) $(cairo_egl_headers) $(cairo_glx_headers) \ + $(cairo_wgl_headers) $(cairo_script_headers) \ + $(cairo_ft_headers) $(cairo_fc_headers) $(cairo_ps_headers) \ + $(cairo_pdf_headers) $(cairo_svg_headers) \ + $(cairo_image_headers) $(cairo_mime_headers) \ + $(cairo_recording_headers) $(cairo_observer_headers) \ + $(cairo_tee_headers) $(cairo_xml_headers) \ + $(cairo_user_headers) $(cairo_gobject_headers) all_cairo_private = $(cairo_private) $(cairo_xlib_private) \ $(cairo_xlib_xrender_private) $(cairo_xcb_private) \ $(cairo_xlib_xcb_private) $(cairo_xcb_shm_private) \ $(cairo_qt_private) $(cairo_quartz_private) \ $(cairo_quartz_font_private) $(cairo_quartz_image_private) \ $(cairo_win32_private) $(cairo_win32_font_private) \ - $(cairo_skia_private) $(cairo_os2_private) \ - $(cairo_beos_private) $(cairo_drm_private) \ - $(cairo_gallium_private) $(cairo_png_private) \ - $(cairo_gl_private) $(cairo_glesv2_private) \ - $(cairo_glesv3_private) $(cairo_cogl_private) \ - $(cairo_directfb_private) $(cairo_vg_private) \ - $(cairo_egl_private) $(cairo_glx_private) $(cairo_wgl_private) \ - $(cairo_script_private) $(cairo_ft_private) \ - $(cairo_fc_private) $(cairo_ps_private) $(cairo_pdf_private) \ - $(cairo_svg_private) $(cairo_test_surfaces_private) \ - $(cairo_test_surfaces_headers) $(cairo_image_private) \ - $(cairo_mime_private) $(cairo_recording_private) \ - $(cairo_observer_private) $(cairo_tee_private) \ - $(cairo_xml_private) $(cairo_user_private) \ - $(cairo_pthread_private) $(cairo_pthread_headers) \ - $(cairo_gobject_private) $(cairo_trace_private) \ - $(cairo_trace_headers) $(cairo_interpreter_private) \ - $(cairo_interpreter_headers) $(cairo_symbol_lookup_private) \ - $(cairo_symbol_lookup_headers) + $(cairo_os2_private) $(cairo_beos_private) \ + $(cairo_drm_private) $(cairo_gallium_private) \ + $(cairo_png_private) $(cairo_gl_private) \ + $(cairo_glesv2_private) $(cairo_glesv3_private) \ + $(cairo_cogl_private) $(cairo_directfb_private) \ + $(cairo_vg_private) $(cairo_egl_private) $(cairo_glx_private) \ + $(cairo_wgl_private) $(cairo_script_private) \ + $(cairo_ft_private) $(cairo_fc_private) $(cairo_ps_private) \ + $(cairo_pdf_private) $(cairo_svg_private) \ + $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers) \ + $(cairo_image_private) $(cairo_mime_private) \ + $(cairo_recording_private) $(cairo_observer_private) \ + $(cairo_tee_private) $(cairo_xml_private) \ + $(cairo_user_private) $(cairo_pthread_private) \ + $(cairo_pthread_headers) $(cairo_gobject_private) \ + $(cairo_trace_private) $(cairo_trace_headers) \ + $(cairo_interpreter_private) $(cairo_interpreter_headers) \ + $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers) all_cairo_cxx_sources = $(cairo_cxx_sources) $(cairo_xlib_cxx_sources) \ $(cairo_xlib_xrender_cxx_sources) $(cairo_xcb_cxx_sources) \ $(cairo_xlib_xcb_cxx_sources) $(cairo_xcb_shm_cxx_sources) \ $(cairo_qt_cxx_sources) $(cairo_quartz_cxx_sources) \ $(cairo_quartz_font_cxx_sources) \ $(cairo_quartz_image_cxx_sources) $(cairo_win32_cxx_sources) \ - $(cairo_win32_font_cxx_sources) $(cairo_skia_cxx_sources) \ - $(cairo_os2_cxx_sources) $(cairo_beos_cxx_sources) \ - $(cairo_drm_cxx_sources) $(cairo_gallium_cxx_sources) \ - $(cairo_png_cxx_sources) $(cairo_gl_cxx_sources) \ - $(cairo_glesv2_cxx_sources) $(cairo_glesv3_cxx_sources) \ - $(cairo_cogl_cxx_sources) $(cairo_directfb_cxx_sources) \ - $(cairo_vg_cxx_sources) $(cairo_egl_cxx_sources) \ - $(cairo_glx_cxx_sources) $(cairo_wgl_cxx_sources) \ - $(cairo_script_cxx_sources) $(cairo_ft_cxx_sources) \ - $(cairo_fc_cxx_sources) $(cairo_ps_cxx_sources) \ - $(cairo_pdf_cxx_sources) $(cairo_svg_cxx_sources) \ - $(cairo_test_surfaces_cxx_sources) $(cairo_image_cxx_sources) \ - $(cairo_mime_cxx_sources) $(cairo_recording_cxx_sources) \ - $(cairo_observer_cxx_sources) $(cairo_tee_cxx_sources) \ - $(cairo_xml_cxx_sources) $(cairo_user_cxx_sources) \ - $(cairo_pthread_cxx_sources) $(cairo_gobject_cxx_sources) \ - $(cairo_trace_cxx_sources) $(cairo_interpreter_cxx_sources) \ + $(cairo_win32_font_cxx_sources) $(cairo_os2_cxx_sources) \ + $(cairo_beos_cxx_sources) $(cairo_drm_cxx_sources) \ + $(cairo_gallium_cxx_sources) $(cairo_png_cxx_sources) \ + $(cairo_gl_cxx_sources) $(cairo_glesv2_cxx_sources) \ + $(cairo_glesv3_cxx_sources) $(cairo_cogl_cxx_sources) \ + $(cairo_directfb_cxx_sources) $(cairo_vg_cxx_sources) \ + $(cairo_egl_cxx_sources) $(cairo_glx_cxx_sources) \ + $(cairo_wgl_cxx_sources) $(cairo_script_cxx_sources) \ + $(cairo_ft_cxx_sources) $(cairo_fc_cxx_sources) \ + $(cairo_ps_cxx_sources) $(cairo_pdf_cxx_sources) \ + $(cairo_svg_cxx_sources) $(cairo_test_surfaces_cxx_sources) \ + $(cairo_image_cxx_sources) $(cairo_mime_cxx_sources) \ + $(cairo_recording_cxx_sources) $(cairo_observer_cxx_sources) \ + $(cairo_tee_cxx_sources) $(cairo_xml_cxx_sources) \ + $(cairo_user_cxx_sources) $(cairo_pthread_cxx_sources) \ + $(cairo_gobject_cxx_sources) $(cairo_trace_cxx_sources) \ + $(cairo_interpreter_cxx_sources) \ $(cairo_symbol_lookup_cxx_sources) all_cairo_sources = $(cairo_sources) $(cairo_xlib_sources) \ $(cairo_xlib_xrender_sources) $(cairo_xcb_sources) \ @@ -1814,22 +1795,22 @@ all_cairo_sources = $(cairo_sources) $(cairo_xlib_sources) \ $(cairo_qt_sources) $(cairo_quartz_sources) \ $(cairo_quartz_font_sources) $(cairo_quartz_image_sources) \ $(cairo_win32_sources) $(cairo_win32_font_sources) \ - $(cairo_skia_sources) $(cairo_os2_sources) \ - $(cairo_beos_sources) $(cairo_drm_sources) \ - $(cairo_gallium_sources) $(cairo_png_sources) \ - $(cairo_gl_sources) $(cairo_glesv2_sources) \ - $(cairo_glesv3_sources) $(cairo_cogl_sources) \ - $(cairo_directfb_sources) $(cairo_vg_sources) \ - $(cairo_egl_sources) $(cairo_glx_sources) $(cairo_wgl_sources) \ - $(cairo_script_sources) $(cairo_ft_sources) \ - $(cairo_fc_sources) $(cairo_ps_sources) $(cairo_pdf_sources) \ - $(cairo_svg_sources) $(cairo_test_surfaces_sources) \ - $(cairo_image_sources) $(cairo_mime_sources) \ - $(cairo_recording_sources) $(cairo_observer_sources) \ - $(cairo_tee_sources) $(cairo_xml_sources) \ - $(cairo_user_sources) $(cairo_pthread_sources) \ - $(cairo_gobject_sources) $(cairo_trace_sources) \ - $(cairo_interpreter_sources) $(cairo_symbol_lookup_sources) + $(cairo_os2_sources) $(cairo_beos_sources) \ + $(cairo_drm_sources) $(cairo_gallium_sources) \ + $(cairo_png_sources) $(cairo_gl_sources) \ + $(cairo_glesv2_sources) $(cairo_glesv3_sources) \ + $(cairo_cogl_sources) $(cairo_directfb_sources) \ + $(cairo_vg_sources) $(cairo_egl_sources) $(cairo_glx_sources) \ + $(cairo_wgl_sources) $(cairo_script_sources) \ + $(cairo_ft_sources) $(cairo_fc_sources) $(cairo_ps_sources) \ + $(cairo_pdf_sources) $(cairo_svg_sources) \ + $(cairo_test_surfaces_sources) $(cairo_image_sources) \ + $(cairo_mime_sources) $(cairo_recording_sources) \ + $(cairo_observer_sources) $(cairo_tee_sources) \ + $(cairo_xml_sources) $(cairo_user_sources) \ + $(cairo_pthread_sources) $(cairo_gobject_sources) \ + $(cairo_trace_sources) $(cairo_interpreter_sources) \ + $(cairo_symbol_lookup_sources) enabled_cairo_headers = $(cairo_headers) $(am__append_1) \ $(am__append_6) $(am__append_11) $(am__append_16) \ $(am__append_21) $(am__append_26) $(am__append_31) \ @@ -1841,10 +1822,10 @@ enabled_cairo_headers = $(cairo_headers) $(am__append_1) \ $(am__append_111) $(am__append_116) $(am__append_121) \ $(am__append_126) $(am__append_131) $(am__append_136) \ $(am__append_141) $(am__append_146) $(am__append_151) \ - $(am__append_156) $(cairo_image_headers) $(cairo_mime_headers) \ + $(cairo_image_headers) $(cairo_mime_headers) \ $(cairo_recording_headers) $(cairo_observer_headers) \ - $(am__append_164) $(am__append_169) $(cairo_user_headers) \ - $(am__append_177) + $(am__append_159) $(am__append_164) $(cairo_user_headers) \ + $(am__append_172) enabled_cairo_private = $(cairo_private) $(am__append_2) \ $(am__append_7) $(am__append_12) $(am__append_17) \ $(am__append_22) $(am__append_27) $(am__append_32) \ @@ -1856,11 +1837,11 @@ enabled_cairo_private = $(cairo_private) $(am__append_2) \ $(am__append_112) $(am__append_117) $(am__append_122) \ $(am__append_127) $(am__append_132) $(am__append_137) \ $(am__append_142) $(am__append_147) $(am__append_152) \ - $(am__append_157) $(am__append_161) $(cairo_image_private) \ - $(cairo_mime_private) $(cairo_recording_private) \ - $(cairo_observer_private) $(am__append_165) $(am__append_170) \ - $(cairo_user_private) $(am__append_174) $(am__append_178) \ - $(am__append_182) $(am__append_185) $(am__append_188) + $(am__append_156) $(cairo_image_private) $(cairo_mime_private) \ + $(cairo_recording_private) $(cairo_observer_private) \ + $(am__append_160) $(am__append_165) $(cairo_user_private) \ + $(am__append_169) $(am__append_173) $(am__append_177) \ + $(am__append_180) $(am__append_183) enabled_cairo_cxx_sources = $(cairo_cxx_sources) $(am__append_3) \ $(am__append_8) $(am__append_13) $(am__append_18) \ $(am__append_23) $(am__append_28) $(am__append_33) \ @@ -1872,12 +1853,12 @@ enabled_cairo_cxx_sources = $(cairo_cxx_sources) $(am__append_3) \ $(am__append_113) $(am__append_118) $(am__append_123) \ $(am__append_128) $(am__append_133) $(am__append_138) \ $(am__append_143) $(am__append_148) $(am__append_153) \ - $(am__append_158) $(am__append_162) $(cairo_image_cxx_sources) \ + $(am__append_157) $(cairo_image_cxx_sources) \ $(cairo_mime_cxx_sources) $(cairo_recording_cxx_sources) \ - $(cairo_observer_cxx_sources) $(am__append_166) \ - $(am__append_171) $(cairo_user_cxx_sources) $(am__append_175) \ - $(am__append_179) $(am__append_183) $(am__append_186) \ - $(am__append_189) + $(cairo_observer_cxx_sources) $(am__append_161) \ + $(am__append_166) $(cairo_user_cxx_sources) $(am__append_170) \ + $(am__append_174) $(am__append_178) $(am__append_181) \ + $(am__append_184) enabled_cairo_sources = $(cairo_sources) $(am__append_4) \ $(am__append_9) $(am__append_14) $(am__append_19) \ $(am__append_24) $(am__append_29) $(am__append_34) \ @@ -1889,17 +1870,17 @@ enabled_cairo_sources = $(cairo_sources) $(am__append_4) \ $(am__append_114) $(am__append_119) $(am__append_124) \ $(am__append_129) $(am__append_134) $(am__append_139) \ $(am__append_144) $(am__append_149) $(am__append_154) \ - $(am__append_159) $(am__append_163) $(cairo_image_sources) \ - $(cairo_mime_sources) $(cairo_recording_sources) \ - $(cairo_observer_sources) $(am__append_167) $(am__append_172) \ - $(cairo_user_sources) $(am__append_176) $(am__append_180) \ - $(am__append_184) $(am__append_187) $(am__append_190) + $(am__append_158) $(cairo_image_sources) $(cairo_mime_sources) \ + $(cairo_recording_sources) $(cairo_observer_sources) \ + $(am__append_162) $(am__append_167) $(cairo_user_sources) \ + $(am__append_171) $(am__append_175) $(am__append_179) \ + $(am__append_182) $(am__append_185) all_cairo_pkgconf = cairo.pc cairo-xlib.pc cairo-xlib-xrender.pc \ cairo-xcb.pc cairo-xlib-xcb.pc cairo-xcb-shm.pc cairo-qt.pc \ cairo-quartz.pc cairo-quartz-font.pc cairo-quartz-image.pc \ - cairo-win32.pc cairo-win32-font.pc cairo-skia.pc cairo-os2.pc \ - cairo-beos.pc cairo-drm.pc cairo-gallium.pc cairo-png.pc \ - cairo-gl.pc cairo-glesv2.pc cairo-glesv3.pc cairo-cogl.pc \ + cairo-win32.pc cairo-win32-font.pc cairo-os2.pc cairo-beos.pc \ + cairo-drm.pc cairo-gallium.pc cairo-png.pc cairo-gl.pc \ + cairo-glesv2.pc cairo-glesv3.pc cairo-cogl.pc \ cairo-directfb.pc cairo-vg.pc cairo-egl.pc cairo-glx.pc \ cairo-wgl.pc cairo-script.pc cairo-ft.pc cairo-fc.pc \ cairo-ps.pc cairo-pdf.pc cairo-svg.pc cairo-tee.pc \ @@ -1914,8 +1895,8 @@ enabled_cairo_pkgconf = cairo.pc $(am__append_5) $(am__append_10) \ $(am__append_105) $(am__append_110) $(am__append_115) \ $(am__append_120) $(am__append_125) $(am__append_130) \ $(am__append_135) $(am__append_140) $(am__append_145) \ - $(am__append_150) $(am__append_155) $(am__append_160) \ - $(am__append_168) $(am__append_173) $(am__append_181) + $(am__append_150) $(am__append_155) $(am__append_163) \ + $(am__append_168) $(am__append_176) #MAINTAINERCLEANFILES += $(srcdir)/Makefile.win32.features AM_CPPFLAGS = -I$(srcdir) $(CAIRO_CFLAGS) AM_LDFLAGS = $(CAIRO_LDFLAGS) @@ -2036,8 +2017,6 @@ cairo-win32.pc: $(top_builddir)/config.status $(srcdir)/cairo-features.pc.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ cairo-win32-font.pc: $(top_builddir)/config.status $(srcdir)/cairo-features.pc.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -cairo-skia.pc: $(top_builddir)/config.status $(srcdir)/cairo-features.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ cairo-os2.pc: $(top_builddir)/config.status $(srcdir)/cairo-features.pc.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ cairo-beos.pc: $(top_builddir)/config.status $(srcdir)/cairo-features.pc.in @@ -2292,8 +2271,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-scaled-font.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-script-surface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-shape-mask-compositor.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-skia-context.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-skia-surface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-slope.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-spans-compositor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-spans.Plo@am__quote@ @@ -2604,20 +2581,6 @@ cairo-drm-gallium-surface.lo: drm/cairo-drm-gallium-surface.c @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -cairo-skia-context.lo: skia/cairo-skia-context.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT cairo-skia-context.lo -MD -MP -MF $(DEPDIR)/cairo-skia-context.Tpo -c -o cairo-skia-context.lo `test -f 'skia/cairo-skia-context.cpp' || echo '$(srcdir)/'`skia/cairo-skia-context.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo-skia-context.Tpo $(DEPDIR)/cairo-skia-context.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='skia/cairo-skia-context.cpp' object='cairo-skia-context.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o cairo-skia-context.lo `test -f 'skia/cairo-skia-context.cpp' || echo '$(srcdir)/'`skia/cairo-skia-context.cpp - -cairo-skia-surface.lo: skia/cairo-skia-surface.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT cairo-skia-surface.lo -MD -MP -MF $(DEPDIR)/cairo-skia-surface.Tpo -c -o cairo-skia-surface.lo `test -f 'skia/cairo-skia-surface.cpp' || echo '$(srcdir)/'`skia/cairo-skia-surface.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo-skia-surface.Tpo $(DEPDIR)/cairo-skia-surface.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='skia/cairo-skia-surface.cpp' object='cairo-skia-surface.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o cairo-skia-surface.lo `test -f 'skia/cairo-skia-surface.cpp' || echo '$(srcdir)/'`skia/cairo-skia-surface.cpp - mostlyclean-libtool: -rm -f *.lo diff --git a/WebKitLibraries/cairo/src/Makefile.sources b/WebKitLibraries/cairo/src/Makefile.sources index cc2194f3e..e50a4d48f 100644 --- a/WebKitLibraries/cairo/src/Makefile.sources +++ b/WebKitLibraries/cairo/src/Makefile.sources @@ -64,10 +64,10 @@ cairo_private = \ cairo-clip-private.h \ cairo-combsort-inline.h \ cairo-compiler-private.h \ + cairo-composite-rectangles-private.h \ cairo-compositor-private.h \ cairo-contour-inline.h \ cairo-contour-private.h \ - cairo-composite-rectangles-private.h \ cairo-damage-private.h \ cairo-default-context-private.h \ cairo-device-private.h \ @@ -75,10 +75,10 @@ cairo_private = \ cairo-error-private.h \ cairo-fixed-private.h \ cairo-fixed-type-private.h \ + cairo-fontconfig-private.h \ + cairo-freed-pool-private.h \ cairo-freelist-private.h \ cairo-freelist-type-private.h \ - cairo-freed-pool-private.h \ - cairo-fontconfig-private.h \ cairo-gstate-private.h \ cairo-hash-private.h \ cairo-image-info-private.h \ @@ -110,26 +110,26 @@ cairo_private = \ cairo-rtree-private.h \ cairo-scaled-font-private.h \ cairo-slope-private.h \ - cairo-spans-private.h \ cairo-spans-compositor-private.h \ + cairo-spans-private.h \ cairo-stroke-dash-private.h \ - cairo-surface-inline.h \ - cairo-surface-private.h \ cairo-surface-backend-private.h \ cairo-surface-clipper-private.h \ cairo-surface-fallback-private.h \ + cairo-surface-inline.h \ cairo-surface-observer-inline.h \ cairo-surface-observer-private.h \ cairo-surface-offset-private.h \ - cairo-surface-subsurface-inline.h \ - cairo-surface-subsurface-private.h \ + cairo-surface-private.h \ cairo-surface-snapshot-inline.h \ cairo-surface-snapshot-private.h \ + cairo-surface-subsurface-inline.h \ + cairo-surface-subsurface-private.h \ cairo-surface-wrapper-private.h \ cairo-time-private.h \ - cairo-types-private.h \ cairo-traps-private.h \ cairo-tristrip-private.h \ + cairo-types-private.h \ cairo-user-font-private.h \ cairo-wideint-private.h \ cairo-wideint-type-private.h \ @@ -141,19 +141,19 @@ cairo_sources = \ cairo-atomic.c \ cairo-base64-stream.c \ cairo-base85-stream.c \ - cairo-bentley-ottmann.c \ cairo-bentley-ottmann-rectangular.c \ cairo-bentley-ottmann-rectilinear.c \ + cairo-bentley-ottmann.c \ cairo-botor-scan-converter.c \ - cairo-boxes.c \ cairo-boxes-intersect.c \ - cairo.c \ + cairo-boxes.c \ cairo-cache.c \ - cairo-clip.c \ cairo-clip-boxes.c \ cairo-clip-polygon.c \ cairo-clip-region.c \ cairo-clip-surface.c \ + cairo-clip-tor-scan-converter.c \ + cairo-clip.c \ cairo-color.c \ cairo-composite-rectangles.c \ cairo-compositor.c \ @@ -165,12 +165,12 @@ cairo_sources = \ cairo-error.c \ cairo-fallback-compositor.c \ cairo-fixed.c \ - cairo-font-face.c \ - cairo-font-face-twin.c \ cairo-font-face-twin-data.c \ + cairo-font-face-twin.c \ + cairo-font-face.c \ cairo-font-options.c \ - cairo-freelist.c \ cairo-freed-pool.c \ + cairo-freelist.c \ cairo-gstate.c \ cairo-hash.c \ cairo-hull.c \ @@ -180,10 +180,10 @@ cairo_sources = \ cairo-image-surface.c \ cairo-line.c \ cairo-lzw.c \ - cairo-matrix.c \ cairo-mask-compositor.c \ - cairo-mesh-pattern-rasterizer.c \ + cairo-matrix.c \ cairo-mempool.c \ + cairo-mesh-pattern-rasterizer.c \ cairo-misc.c \ cairo-mono-scan-converter.c \ cairo-mutex.c \ @@ -192,20 +192,20 @@ cairo_sources = \ cairo-output-stream.c \ cairo-paginated-surface.c \ cairo-path-bounds.c \ - cairo-path.c \ cairo-path-fill.c \ cairo-path-fixed.c \ cairo-path-in-fill.c \ - cairo-path-stroke.c \ cairo-path-stroke-boxes.c \ cairo-path-stroke-polygon.c \ cairo-path-stroke-traps.c \ cairo-path-stroke-tristrip.c \ + cairo-path-stroke.c \ + cairo-path.c \ cairo-pattern.c \ cairo-pen.c \ - cairo-polygon.c \ cairo-polygon-intersect.c \ cairo-polygon-reduce.c \ + cairo-polygon.c \ cairo-raster-source-pattern.c \ cairo-recording-surface.c \ cairo-rectangle.c \ @@ -215,12 +215,11 @@ cairo_sources = \ cairo-scaled-font.c \ cairo-shape-mask-compositor.c \ cairo-slope.c \ - cairo-spans.c \ cairo-spans-compositor.c \ + cairo-spans.c \ cairo-spline.c \ cairo-stroke-dash.c \ cairo-stroke-style.c \ - cairo-surface.c \ cairo-surface-clipper.c \ cairo-surface-fallback.c \ cairo-surface-observer.c \ @@ -228,18 +227,19 @@ cairo_sources = \ cairo-surface-snapshot.c \ cairo-surface-subsurface.c \ cairo-surface-wrapper.c \ + cairo-surface.c \ cairo-time.c \ cairo-tor-scan-converter.c \ cairo-tor22-scan-converter.c \ - cairo-clip-tor-scan-converter.c \ cairo-toy-font-face.c \ + cairo-traps-compositor.c \ cairo-traps.c \ cairo-tristrip.c \ - cairo-traps-compositor.c \ cairo-unicode.c \ cairo-user-font.c \ cairo-version.c \ cairo-wideint.c \ + cairo.c \ $(NULL) _cairo_font_subset_private = \ @@ -403,13 +403,13 @@ cairo_gl_sources = cairo-gl-composite.c \ cairo-gl-glyphs.c \ cairo-gl-gradient.c \ cairo-gl-info.c \ + cairo-gl-msaa-compositor.c \ cairo-gl-operand.c \ cairo-gl-shaders.c \ - cairo-gl-msaa-compositor.c \ - cairo-gl-spans-compositor.c \ - cairo-gl-traps-compositor.c \ cairo-gl-source.c \ - cairo-gl-surface.c + cairo-gl-spans-compositor.c \ + cairo-gl-surface.c \ + cairo-gl-traps-compositor.c cairo_glesv2_headers = $(cairo_gl_headers) cairo_glesv2_private = $(cairo_gl_private) diff --git a/WebKitLibraries/cairo/src/Makefile.win32.features b/WebKitLibraries/cairo/src/Makefile.win32.features index e8be9f748..377d6dd12 100644 --- a/WebKitLibraries/cairo/src/Makefile.win32.features +++ b/WebKitLibraries/cairo/src/Makefile.win32.features @@ -197,22 +197,6 @@ ifeq ($(CAIRO_HAS_WIN32_FONT),1) enabled_cairo_pkgconf += cairo-win32-font.pc endif -unsupported_cairo_headers += $(cairo_skia_headers) -all_cairo_headers += $(cairo_skia_headers) -all_cairo_private += $(cairo_skia_private) -all_cairo_cxx_sources += $(cairo_skia_cxx_sources) -all_cairo_sources += $(cairo_skia_sources) -ifeq ($(CAIRO_HAS_SKIA_SURFACE),1) -enabled_cairo_headers += $(cairo_skia_headers) -enabled_cairo_private += $(cairo_skia_private) -enabled_cairo_cxx_sources += $(cairo_skia_cxx_sources) -enabled_cairo_sources += $(cairo_skia_sources) -endif -all_cairo_pkgconf += cairo-skia.pc -ifeq ($(CAIRO_HAS_SKIA_SURFACE),1) -enabled_cairo_pkgconf += cairo-skia.pc -endif - unsupported_cairo_headers += $(cairo_os2_headers) all_cairo_headers += $(cairo_os2_headers) all_cairo_private += $(cairo_os2_private) diff --git a/WebKitLibraries/cairo/src/cairo-bentley-ottmann-rectangular.c b/WebKitLibraries/cairo/src/cairo-bentley-ottmann-rectangular.c index 15688c744..65f95d797 100644 --- a/WebKitLibraries/cairo/src/cairo-bentley-ottmann-rectangular.c +++ b/WebKitLibraries/cairo/src/cairo-bentley-ottmann-rectangular.c @@ -593,12 +593,6 @@ sweep_line_insert (sweep_line_t *sweep, rectangle_t *rectangle) pqueue_push (sweep, rectangle); } -static int -sweep_line_setjmp (sweep_line_t *sweep_line) -{ - return setjmp (sweep_line->unwind); -} - static cairo_status_t _cairo_bentley_ottmann_tessellate_rectangular (rectangle_t **rectangles, int num_rectangles, @@ -609,15 +603,17 @@ _cairo_bentley_ottmann_tessellate_rectangular (rectangle_t **rectangles, sweep_line_t sweep_line; rectangle_t *rectangle; cairo_status_t status; - cairo_bool_t update = FALSE; + cairo_bool_t update; sweep_line_init (&sweep_line, rectangles, num_rectangles, fill_rule, do_traps, container); - if ((status = sweep_line_setjmp (&sweep_line))) + if ((status = setjmp (sweep_line.unwind))) return status; + update = FALSE; + rectangle = rectangle_pop_start (&sweep_line); do { if (rectangle->top != sweep_line.current_y) { diff --git a/WebKitLibraries/cairo/src/cairo-cogl-surface.c b/WebKitLibraries/cairo/src/cairo-cogl-surface.c index f61e16c82..b46066c9b 100644 --- a/WebKitLibraries/cairo/src/cairo-cogl-surface.c +++ b/WebKitLibraries/cairo/src/cairo-cogl-surface.c @@ -517,7 +517,7 @@ _cairo_cogl_surface_allocate_buffer_space (cairo_cogl_surface_t *surface, void **pointer) { /* XXX: In the Cogl journal we found it more efficient to have a pool of - * buffers that we re-cycle but for now we simply thow away our stack + * buffers that we re-cycle but for now we simply throw away our stack * buffer each time we flush. */ if (unlikely (surface->buffer_stack && (surface->buffer_stack_size - surface->buffer_stack_offset) < size)) { diff --git a/WebKitLibraries/cairo/src/cairo-compiler-private.h b/WebKitLibraries/cairo/src/cairo-compiler-private.h index e7e2ade22..9d33ffed1 100644 --- a/WebKitLibraries/cairo/src/cairo-compiler-private.h +++ b/WebKitLibraries/cairo/src/cairo-compiler-private.h @@ -69,7 +69,7 @@ * call sites. The macro works by renaming `f' to an internal name * in the symbol table and hiding that. As far as cairo internal * calls are concerned they're calling a library internal function - * and thus don't need to bounce via the PLT. + * and thus don't need to bounce via the procedure linkage table (PLT). * * slim_hidden_def(f) * diff --git a/WebKitLibraries/cairo/src/cairo-debug.c b/WebKitLibraries/cairo/src/cairo-debug.c index 10933a673..6005060d4 100644 --- a/WebKitLibraries/cairo/src/cairo-debug.c +++ b/WebKitLibraries/cairo/src/cairo-debug.c @@ -86,6 +86,8 @@ cairo_debug_reset_static_data (void) _cairo_image_reset_static_data (); + _cairo_image_compositor_reset_static_data (); + #if CAIRO_HAS_DRM_SURFACE _cairo_drm_device_reset_static_data (); #endif diff --git a/WebKitLibraries/cairo/src/cairo-font-options.c b/WebKitLibraries/cairo/src/cairo-font-options.c index ad28745e6..de6ae951f 100644 --- a/WebKitLibraries/cairo/src/cairo-font-options.c +++ b/WebKitLibraries/cairo/src/cairo-font-options.c @@ -55,7 +55,8 @@ static const cairo_font_options_t _cairo_font_options_nil = { CAIRO_LCD_FILTER_DEFAULT, CAIRO_HINT_STYLE_DEFAULT, CAIRO_HINT_METRICS_DEFAULT, - CAIRO_ROUND_GLYPH_POS_DEFAULT + CAIRO_ROUND_GLYPH_POS_DEFAULT, + NULL }; /** @@ -73,6 +74,7 @@ _cairo_font_options_init_default (cairo_font_options_t *options) options->hint_style = CAIRO_HINT_STYLE_DEFAULT; options->hint_metrics = CAIRO_HINT_METRICS_DEFAULT; options->round_glyph_positions = CAIRO_ROUND_GLYPH_POS_DEFAULT; + options->variations = NULL; } void @@ -85,6 +87,7 @@ _cairo_font_options_init_copy (cairo_font_options_t *options, options->hint_style = other->hint_style; options->hint_metrics = other->hint_metrics; options->round_glyph_positions = other->round_glyph_positions; + options->variations = other->variations ? strdup (other->variations) : NULL; } /** @@ -151,6 +154,12 @@ cairo_font_options_copy (const cairo_font_options_t *original) return options; } +void +_cairo_font_options_fini (cairo_font_options_t *options) +{ + free (options->variations); +} + /** * cairo_font_options_destroy: * @options: a #cairo_font_options_t @@ -166,6 +175,7 @@ cairo_font_options_destroy (cairo_font_options_t *options) if (cairo_font_options_status (options)) return; + _cairo_font_options_fini (options); free (options); } @@ -226,6 +236,24 @@ cairo_font_options_merge (cairo_font_options_t *options, options->hint_metrics = other->hint_metrics; if (other->round_glyph_positions != CAIRO_ROUND_GLYPH_POS_DEFAULT) options->round_glyph_positions = other->round_glyph_positions; + + if (other->variations) { + if (options->variations) { + char *p; + + /* 'merge' variations by concatenating - later entries win */ + p = malloc (strlen (other->variations) + strlen (options->variations) + 2); + p[0] = 0; + strcat (p, options->variations); + strcat (p, ","); + strcat (p, other->variations); + free (options->variations); + options->variations = p; + } + else { + options->variations = strdup (other->variations); + } + } } slim_hidden_def (cairo_font_options_merge); @@ -259,7 +287,10 @@ cairo_font_options_equal (const cairo_font_options_t *options, options->lcd_filter == other->lcd_filter && options->hint_style == other->hint_style && options->hint_metrics == other->hint_metrics && - options->round_glyph_positions == other->round_glyph_positions); + options->round_glyph_positions == other->round_glyph_positions && + ((options->variations == NULL && other->variations == NULL) || + (options->variations != NULL && other->variations != NULL && + strcmp (options->variations, other->variations) == 0))); } slim_hidden_def (cairo_font_options_equal); @@ -280,14 +311,19 @@ slim_hidden_def (cairo_font_options_equal); unsigned long cairo_font_options_hash (const cairo_font_options_t *options) { + unsigned long hash = 0; + if (cairo_font_options_status ((cairo_font_options_t *) options)) options = &_cairo_font_options_nil; /* force default values */ + if (options->variations) + hash = _cairo_string_hash (options->variations, strlen (options->variations)); + return ((options->antialias) | (options->subpixel_order << 4) | (options->lcd_filter << 8) | (options->hint_style << 12) | - (options->hint_metrics << 16)); + (options->hint_metrics << 16)) ^ hash; } slim_hidden_def (cairo_font_options_hash); @@ -533,3 +569,54 @@ cairo_font_options_get_hint_metrics (const cairo_font_options_t *options) return options->hint_metrics; } + +/** + * cairo_font_options_set_variations: + * @options: a #cairo_font_options_t + * @variations: the new font variations, or %NULL + * + * Sets the OpenType font variations for the font options object. + * Font variations are specified as a string with a format that + * is similar to the CSS font-variation-settings. The string contains + * a comma-separated list of axis assignments, which each assignment + * consists of a 4-character axis name and a value, separated by + * whitespace and optional equals sign. + * + * Examples: + * + * wght=200,wdth=140.5 + * + * wght 200 , wdth 140.5 + * + * Since: 1.16 + **/ +void +cairo_font_options_set_variations (cairo_font_options_t *options, + const char *variations) +{ + char *tmp = variations ? strdup (variations) : NULL; + free (options->variations); + options->variations = tmp; +} + +/** + * cairo_font_options_get_variations: + * @options: a #cairo_font_options_t + * + * Gets the OpenType font variations for the font options object. + * See cairo_font_options_set_variations() for details about the + * string format. + * + * Return value: the font variations for the font options object. The + * returned string belongs to the @options and must not be modified. + * It is valid until either the font options object is destroyed or + * the font variations in this object is modified with + * cairo_font_options_set_variations(). + * + * Since: 1.16 + **/ +const char * +cairo_font_options_get_variations (cairo_font_options_t *options) +{ + return options->variations; +} diff --git a/WebKitLibraries/cairo/src/cairo-ft-font.c b/WebKitLibraries/cairo/src/cairo-ft-font.c index 7f23eb787..79aef78f5 100644 --- a/WebKitLibraries/cairo/src/cairo-ft-font.c +++ b/WebKitLibraries/cairo/src/cairo-ft-font.c @@ -93,7 +93,6 @@ #define FT_LCD_FILTER_LEGACY 16 #endif -#define DOUBLE_TO_26_6(d) ((FT_F26Dot6)((d) * 64.0)) #define DOUBLE_FROM_26_6(t) ((double)(t) / 64.0) #define DOUBLE_TO_16_16(d) ((FT_Fixed)((d) * 65536.0)) #define DOUBLE_FROM_16_16(t) ((double)(t) / 65536.0) @@ -169,8 +168,9 @@ struct _cairo_ft_unscaled_font { cairo_matrix_t current_shape; FT_Matrix Current_Shape; - unsigned int have_color_set : 1; - unsigned int have_color : 1; /* true if the font contains color glyphs */ + unsigned int have_color_set : 1; + unsigned int have_color : 1; /* true if the font contains color glyphs */ + FT_Fixed *variations; /* variation settings that FT_Face came */ cairo_mutex_t mutex; int lock_count; @@ -191,6 +191,21 @@ typedef struct _cairo_ft_options { unsigned int synth_flags; } cairo_ft_options_t; +static void +_cairo_ft_options_init_copy (cairo_ft_options_t *options, + const cairo_ft_options_t *other) +{ + _cairo_font_options_init_copy (&options->base, &other->base); + options->load_flags = other->load_flags; + options->synth_flags = other->synth_flags; +} + +static void +_cairo_ft_options_fini (cairo_ft_options_t *options) +{ + _cairo_font_options_fini (&options->base); +} + struct _cairo_ft_font_face { cairo_font_face_t base; @@ -426,12 +441,27 @@ _cairo_ft_unscaled_font_init (cairo_ft_unscaled_font_t *unscaled, _cairo_unscaled_font_init (&unscaled->base, &cairo_ft_unscaled_font_backend); + unscaled->variations = NULL; + if (from_face) { unscaled->from_face = TRUE; - _cairo_ft_unscaled_font_init_key (unscaled, TRUE, NULL, 0, face); + _cairo_ft_unscaled_font_init_key (unscaled, TRUE, NULL, face->face_index, face); + unscaled->have_color = FT_HAS_COLOR (face) != 0; unscaled->have_color_set = TRUE; + +#ifdef HAVE_FT_GET_VAR_DESIGN_COORDINATES + { + FT_MM_Var *ft_mm_var; + if (0 == FT_Get_MM_Var (face, &ft_mm_var)) + { + unscaled->variations = calloc (ft_mm_var->num_axis, sizeof (FT_Fixed)); + if (unscaled->variations) + FT_Get_Var_Design_Coordinates (face, ft_mm_var->num_axis, unscaled->variations); + } + } +#endif } else { char *filename_copy; @@ -444,7 +474,7 @@ _cairo_ft_unscaled_font_init (cairo_ft_unscaled_font_t *unscaled, _cairo_ft_unscaled_font_init_key (unscaled, FALSE, filename_copy, id, NULL); - unscaled->have_color_set = FALSE; + unscaled->have_color_set = FALSE; } unscaled->have_scale = FALSE; @@ -475,6 +505,8 @@ _cairo_ft_unscaled_font_fini (cairo_ft_unscaled_font_t *unscaled) free (unscaled->filename); unscaled->filename = NULL; + free (unscaled->variations); + CAIRO_MUTEX_FINI (unscaled->mutex); } @@ -487,7 +519,7 @@ _cairo_ft_unscaled_font_keys_equal (const void *key_a, if (unscaled_a->id == unscaled_b->id && unscaled_a->from_face == unscaled_b->from_face) - { + { if (unscaled_a->from_face) return unscaled_a->face == unscaled_b->face; @@ -1714,6 +1746,7 @@ _get_pattern_ft_options (FcPattern *pattern, cairo_ft_options_t *ret) #ifdef FC_HINT_STYLE int hintstyle; #endif + char *variations; _cairo_font_options_init_default (&ft_options.base); ft_options.load_flags = FT_LOAD_DEFAULT; @@ -1855,6 +1888,13 @@ _get_pattern_ft_options (FcPattern *pattern, cairo_ft_options_t *ret) if (embolden) ft_options.synth_flags |= CAIRO_FT_SYNTHESIZE_BOLD; +#ifndef FC_FONT_VARIATIONS +#define FC_FONT_VARIATIONS "fontvariations" +#endif + if (FcPatternGetString (pattern, FC_FONT_VARIATIONS, 0, (FcChar8 **) &variations) == FcResultMatch) { + ft_options.base.variations = strdup (variations); + } + *ret = ft_options; } #endif @@ -1932,6 +1972,24 @@ _cairo_ft_options_merge (cairo_ft_options_t *options, } } + if (other->base.variations) { + if (options->base.variations) { + char *p; + + /* 'merge' variations by concatenating - later entries win */ + p = malloc (strlen (other->base.variations) + strlen (options->base.variations) + 2); + p[0] = 0; + strcat (p, other->base.variations); + strcat (p, ","); + strcat (p, options->base.variations); + free (options->base.variations); + options->base.variations = p; + } + else { + options->base.variations = strdup (other->base.variations); + } + } + options->load_flags = load_flags | load_target; options->synth_flags = other->synth_flags; } @@ -2234,6 +2292,99 @@ _cairo_ft_scaled_glyph_vertical_layout_bearing_fix (void *abstract_font, } } +static void +cairo_ft_apply_variations (FT_Face face, + cairo_ft_scaled_font_t *scaled_font) +{ + FT_MM_Var *ft_mm_var; + FT_Error ret; + unsigned int instance_id = scaled_font->unscaled->id >> 16; + + ret = FT_Get_MM_Var (face, &ft_mm_var); + if (ret == 0) { + FT_Fixed *current_coords; + FT_Fixed *coords; + unsigned int i; + const char *p; + + coords = malloc (sizeof (FT_Fixed) * ft_mm_var->num_axis); + /* FIXME check coords. */ + + if (scaled_font->unscaled->variations) + { + memcpy (coords, scaled_font->unscaled->variations, ft_mm_var->num_axis * sizeof (*coords)); + } + else if (instance_id && instance_id <= ft_mm_var->num_namedstyles) + { + FT_Var_Named_Style *instance = &ft_mm_var->namedstyle[instance_id - 1]; + memcpy (coords, instance->coords, ft_mm_var->num_axis * sizeof (*coords)); + } + else + for (i = 0; i < ft_mm_var->num_axis; i++) + coords[i] = ft_mm_var->axis[i].def; + + p = scaled_font->ft_options.base.variations; + while (p && *p) { + const char *start; + const char *end, *end2; + FT_ULong tag; + double value; + + while (_cairo_isspace (*p)) p++; + + start = p; + end = strchr (p, ','); + if (end && (end - p < 6)) + goto skip; + + tag = FT_MAKE_TAG(p[0], p[1], p[2], p[3]); + + p += 4; + while (_cairo_isspace (*p)) p++; + if (*p == '=') p++; + + if (p - start < 5) + goto skip; + + value = _cairo_strtod (p, (char **) &end2); + + while (end2 && _cairo_isspace (*end2)) end2++; + + if (end2 && (*end2 != ',' && *end2 != '\0')) + goto skip; + + for (i = 0; i < ft_mm_var->num_axis; i++) { + if (ft_mm_var->axis[i].tag == tag) { + coords[i] = (FT_Fixed)(value*65536); + break; + } + } + +skip: + p = end ? end + 1 : NULL; + } + + current_coords = malloc (sizeof (FT_Fixed) * ft_mm_var->num_axis); +#ifdef HAVE_FT_GET_VAR_DESIGN_COORDINATES + ret = FT_Get_Var_Design_Coordinates (face, ft_mm_var->num_axis, current_coords); + if (ret == 0) { + for (i = 0; i < ft_mm_var->num_axis; i++) { + if (coords[i] != current_coords[i]) + break; + } + if (i == ft_mm_var->num_axis) + goto done; + } +#endif + + FT_Set_Var_Design_Coordinates (face, ft_mm_var->num_axis, coords); +done: + free (coords); + free (current_coords); + free (ft_mm_var); + } +} + static cairo_int_status_t _cairo_ft_scaled_glyph_load_glyph (cairo_ft_scaled_font_t *scaled_font, cairo_scaled_glyph_t *scaled_glyph, @@ -2256,6 +2407,8 @@ _cairo_ft_scaled_glyph_load_glyph (cairo_ft_scaled_font_t *scaled_font, if (unlikely (status)) return status; + cairo_ft_apply_variations (face, scaled_font); + error = FT_Load_Glyph (face, _cairo_scaled_glyph_index(scaled_glyph), load_flags); @@ -2678,17 +2831,17 @@ _cairo_ft_is_synthetic (void *abstract_font, } #if FREETYPE_MAJOR > 2 || ( FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 8) - /* If FT_Get_Var_Design_Coordinates() is available, we can check if the + /* If FT_Get_Var_Blend_Coordinates() is available, we can check if the * current design coordinates are the default coordinates. In this case * the current outlines match the font tables. */ { int i; - FT_Get_Var_Design_Coordinates (face, num_axis, coords); + FT_Get_Var_Blend_Coordinates (face, num_axis, coords); *is_synthetic = FALSE; for (i = 0; i < num_axis; i++) { - if (coords[i] != mm_var->axis[i].def) { + if (coords[i]) { *is_synthetic = TRUE; break; } @@ -2698,7 +2851,11 @@ _cairo_ft_is_synthetic (void *abstract_font, cleanup: free (coords); +#if HAVE_FT_DONE_MM_VAR + FT_Done_MM_Var (face->glyph->library, mm_var); +#else free (mm_var); +#endif } _cairo_ft_unscaled_font_unlock_face (unscaled); @@ -2851,9 +3008,11 @@ _cairo_ft_has_color_glyphs (void *scaled) cairo_ft_unscaled_font_t *unscaled = ((cairo_ft_scaled_font_t *)scaled)->unscaled; if (!unscaled->have_color_set) { - FT_Face face; - face = _cairo_ft_unscaled_font_lock_face (unscaled); - _cairo_ft_unscaled_font_unlock_face (unscaled); + FT_Face face; + face = _cairo_ft_unscaled_font_lock_face (unscaled); + if (unlikely (face == NULL)) + return FALSE; + _cairo_ft_unscaled_font_unlock_face (unscaled); } return unscaled->have_color; @@ -3001,6 +3160,8 @@ _cairo_ft_font_face_destroy (void *abstract_face) font_face->unscaled = NULL; } + _cairo_ft_options_fini (&font_face->ft_options); + #if CAIRO_HAS_FC_FONT if (font_face->pattern) { FcPatternDestroy (font_face->pattern); @@ -3093,6 +3254,9 @@ _cairo_ft_font_face_create_for_pattern (FcPattern *pattern) } font_face->unscaled = NULL; + + _get_pattern_ft_options (pattern, &font_face->ft_options); + font_face->next = NULL; font_face->pattern = FcPatternDuplicate (pattern); @@ -3154,7 +3318,7 @@ _cairo_ft_font_face_create (cairo_ft_unscaled_font_t *unscaled, font_face->unscaled = unscaled; _cairo_unscaled_font_reference (&unscaled->base); - font_face->ft_options = *ft_options; + _cairo_ft_options_init_copy (&font_face->ft_options, ft_options); if (unscaled->faces && unscaled->faces->unscaled == NULL) { /* This "zombie" font_face (from _cairo_ft_font_face_destroy) @@ -3401,6 +3565,7 @@ _cairo_ft_resolve_pattern (FcPattern *pattern, _get_pattern_ft_options (resolved, &ft_options); font_face = _cairo_ft_font_face_create (unscaled, &ft_options); + _cairo_ft_options_fini (&ft_options); _cairo_unscaled_font_destroy (&unscaled->base); FREE_RESOLVED: @@ -3475,6 +3640,7 @@ cairo_ft_font_face_create_for_pattern (FcPattern *pattern) _get_pattern_ft_options (pattern, &ft_options); font_face = _cairo_ft_font_face_create (unscaled, &ft_options); + _cairo_ft_options_fini (&ft_options); _cairo_unscaled_font_destroy (&unscaled->base); return font_face; @@ -3628,7 +3794,8 @@ cairo_ft_font_face_get_synthesize (cairo_font_face_t *font_face) * cairo_ft_font_face_create_for_ft_face()). * * cairo_ft_scaled_font_lock_face() gets the #FT_Face object from a FreeType - * backend font and scales it appropriately for the font. You must + * backend font and scales it appropriately for the font and applies OpenType + * font variations if applicable. You must * release the face with cairo_ft_scaled_font_unlock_face() * when you are done using it. Since the #FT_Face object can be * shared between multiple #cairo_scaled_font_t objects, you must not @@ -3681,6 +3848,8 @@ cairo_ft_scaled_font_lock_face (cairo_scaled_font_t *abstract_font) return NULL; } + cairo_ft_apply_variations (face, scaled_font); + /* Note: We deliberately release the unscaled font's mutex here, * so that we are not holding a lock across two separate calls to * cairo function, (which would give the application some diff --git a/WebKitLibraries/cairo/src/cairo-image-compositor.c b/WebKitLibraries/cairo/src/cairo-image-compositor.c index f32cbd922..92f37faf4 100644 --- a/WebKitLibraries/cairo/src/cairo-image-compositor.c +++ b/WebKitLibraries/cairo/src/cairo-image-compositor.c @@ -821,6 +821,18 @@ get_glyph_cache (void) return global_glyph_cache; } +void +_cairo_image_compositor_reset_static_data (void) +{ + CAIRO_MUTEX_LOCK (_cairo_glyph_cache_mutex); + + if (global_glyph_cache) + pixman_glyph_cache_destroy (global_glyph_cache); + global_glyph_cache = NULL; + + CAIRO_MUTEX_UNLOCK (_cairo_glyph_cache_mutex); +} + void _cairo_image_scaled_glyph_fini (cairo_scaled_font_t *scaled_font, cairo_scaled_glyph_t *scaled_glyph) @@ -946,6 +958,11 @@ composite_glyphs (void *_dst, return status; } #else +void +_cairo_image_compositor_reset_static_data (void) +{ +} + void _cairo_image_scaled_glyph_fini (cairo_scaled_font_t *scaled_font, cairo_scaled_glyph_t *scaled_glyph) diff --git a/WebKitLibraries/cairo/src/cairo-malloc-private.h b/WebKitLibraries/cairo/src/cairo-malloc-private.h index 1e2c67f8d..570f7cb0e 100644 --- a/WebKitLibraries/cairo/src/cairo-malloc-private.h +++ b/WebKitLibraries/cairo/src/cairo-malloc-private.h @@ -60,7 +60,7 @@ **/ #define _cairo_malloc(size) \ - ((size) ? malloc((unsigned) (size)) : NULL) + ((size) > 0 ? malloc((unsigned) (size)) : NULL) /** * _cairo_malloc_ab: diff --git a/WebKitLibraries/cairo/src/cairo-misc.c b/WebKitLibraries/cairo/src/cairo-misc.c index 33e72d773..d360a1d48 100644 --- a/WebKitLibraries/cairo/src/cairo-misc.c +++ b/WebKitLibraries/cairo/src/cairo-misc.c @@ -43,6 +43,10 @@ #include #include +#include +#ifdef HAVE_XLOCALE_H +#include +#endif COMPILE_TIME_ASSERT ((int)CAIRO_STATUS_LAST_STATUS < (int)CAIRO_INT_STATUS_UNSUPPORTED); COMPILE_TIME_ASSERT (CAIRO_INT_STATUS_LAST_STATUS <= 127); @@ -789,6 +793,38 @@ _cairo_get_locale_decimal_point (void) } #endif +#if defined (HAVE_NEWLOCALE) && defined (HAVE_STRTOD_L) + +static locale_t C_locale; + +static locale_t +get_C_locale (void) +{ + locale_t C; + +retry: + C = (locale_t) _cairo_atomic_ptr_get ((void **) &C_locale); + + if (unlikely (!C)) { + C = newlocale (LC_ALL_MASK, "C", NULL); + + if (!_cairo_atomic_ptr_cmpxchg ((void **) &C_locale, NULL, C)) { + freelocale (C_locale); + goto retry; + } + } + + return C; +} + +double +_cairo_strtod (const char *nptr, char **endptr) +{ + return strtod_l (nptr, endptr, get_C_locale ()); +} + +#else + /* strtod replacement that ignores locale and only accepts decimal points */ double _cairo_strtod (const char *nptr, char **endptr) @@ -844,6 +880,7 @@ _cairo_strtod (const char *nptr, char **endptr) return value; } +#endif /** * _cairo_fopen: @@ -984,13 +1021,13 @@ typedef struct _cairo_intern_string { static cairo_hash_table_t *_cairo_intern_string_ht; -static unsigned long -_intern_string_hash (const char *str, int len) +unsigned long +_cairo_string_hash (const char *str, int len) { const signed char *p = (const signed char *) str; unsigned int h = *p; - for (p += 1; --len; p++) + for (p += 1; len > 0; len--, p++) h = (h << 5) - h + *p; return h; @@ -1020,7 +1057,7 @@ _cairo_intern_string (const char **str_inout, int len) if (len < 0) len = strlen (str); - tmpl.hash_entry.hash = _intern_string_hash (str, len); + tmpl.hash_entry.hash = _cairo_string_hash (str, len); tmpl.len = len; tmpl.string = (char *) str; diff --git a/WebKitLibraries/cairo/src/cairo-pdf-operators.c b/WebKitLibraries/cairo/src/cairo-pdf-operators.c index b4ac253e6..42f770940 100644 --- a/WebKitLibraries/cairo/src/cairo-pdf-operators.c +++ b/WebKitLibraries/cairo/src/cairo-pdf-operators.c @@ -140,7 +140,7 @@ _cairo_pdf_operators_flush (cairo_pdf_operators_t *pdf_operators) * assumptions will be made about the state. The next time a * particular graphics state is required (eg line width) the state * operator is always emitted and then remembered for subsequent - * operatations. + * operations. * * This should be called when starting a new stream or after emitting * the 'Q' operator (where pdf-operators functions were called inside diff --git a/WebKitLibraries/cairo/src/cairo-pdf-surface-private.h b/WebKitLibraries/cairo/src/cairo-pdf-surface-private.h index 84fcf5f64..3793332ce 100644 --- a/WebKitLibraries/cairo/src/cairo-pdf-surface-private.h +++ b/WebKitLibraries/cairo/src/cairo-pdf-surface-private.h @@ -110,7 +110,7 @@ typedef struct _cairo_pdf_pattern { /* PDF pattern space is the pattern matrix concatenated with the * initial space of the parent object. If the parent object is the - * page, the intial space does not include the Y-axis flipping + * page, the initial space does not include the Y-axis flipping * matrix emitted at the start of the page content stream. If the * parent object is not the page content stream, the initial space * will have a flipped Y-axis. The inverted_y_axis flag is true diff --git a/WebKitLibraries/cairo/src/cairo-pdf-surface.c b/WebKitLibraries/cairo/src/cairo-pdf-surface.c index bf01fbaf6..81ff515c8 100644 --- a/WebKitLibraries/cairo/src/cairo-pdf-surface.c +++ b/WebKitLibraries/cairo/src/cairo-pdf-surface.c @@ -4194,7 +4194,7 @@ cairo_pdf_surface_emit_transparency_group (cairo_pdf_surface_t *surface, /* When emitting a shading operator we are in cairo pattern * coordinates. _cairo_pdf_surface_paint_gradient has set the - * ctm to the pattern matrix (including the convertion from + * ctm to the pattern matrix (including the conversion from * pdf to cairo coordinates) */ _cairo_box_from_rectangle (&box, &pdf_pattern->extents); _cairo_box_to_doubles (&box, &x1, &y1, &x2, &y2); diff --git a/WebKitLibraries/cairo/src/cairo-png.c b/WebKitLibraries/cairo/src/cairo-png.c index fe23fcf9d..ab0b9d0c5 100644 --- a/WebKitLibraries/cairo/src/cairo-png.c +++ b/WebKitLibraries/cairo/src/cairo-png.c @@ -158,14 +158,6 @@ png_simple_warning_callback (png_structp png, */ } -static int -png_setjmp (png_struct *png) -{ -#ifdef PNG_SETJMP_SUPPORTED - return setjmp (png_jmpbuf (png)); -#endif - return 0; -} /* Starting with libpng-1.2.30, we must explicitly specify an output_flush_fn. * Otherwise, we will segfault if we are writing to a stream. */ @@ -237,8 +229,10 @@ write_png (cairo_surface_t *surface, goto BAIL4; } - if (png_setjmp (png)) +#ifdef PNG_SETJMP_SUPPORTED + if (setjmp (png_jmpbuf (png))) goto BAIL4; +#endif png_set_write_fn (png, closure, write_func, png_simple_output_flush_fn); @@ -550,11 +544,11 @@ stream_read_func (png_structp png, png_bytep data, png_size_t size) static cairo_surface_t * read_png (struct png_read_closure_t *png_closure) { - cairo_surface_t *surface; + cairo_surface_t * volatile surface; png_struct *png = NULL; png_info *info; - png_byte *data = NULL; - png_byte **row_pointers = NULL; + png_byte * volatile data = NULL; + png_byte ** volatile row_pointers = NULL; png_uint_32 png_width, png_height; int depth, color_type, interlace, stride; unsigned int i; @@ -584,11 +578,12 @@ read_png (struct png_read_closure_t *png_closure) png_set_read_fn (png, png_closure, stream_read_func); status = CAIRO_STATUS_SUCCESS; - - if (png_setjmp (png)) { +#ifdef PNG_SETJMP_SUPPORTED + if (setjmp (png_jmpbuf (png))) { surface = _cairo_surface_create_in_error (status); goto BAIL; } +#endif png_read_info (png, info); diff --git a/WebKitLibraries/cairo/src/cairo-ps-surface.c b/WebKitLibraries/cairo/src/cairo-ps-surface.c index 80b8b02aa..27a51953e 100644 --- a/WebKitLibraries/cairo/src/cairo-ps-surface.c +++ b/WebKitLibraries/cairo/src/cairo-ps-surface.c @@ -3283,7 +3283,7 @@ _cairo_ps_surface_emit_eps (cairo_ps_surface_t *surface, params->approx_size = eps_data_len; surface->contains_eps = TRUE; - /* Find number of occurences of SUBFILE_FILTER_EOD in the EPS data. + /* Find number of occurrences of SUBFILE_FILTER_EOD in the EPS data. * We will need it before emitting the data if a ReusableStream is used. */ params->eod_count = count_eod_strings (eps_data, eps_data_len); @@ -3570,7 +3570,7 @@ _cairo_ps_surface_emit_form (cairo_ps_surface_t *surface, cairo_emit_surface_params_t *params, cairo_bool_t test) { - cairo_ps_form_t *ps_form; + cairo_ps_form_t *ps_form = NULL; cairo_status_t status; status = _cairo_ps_surface_use_form (surface, @@ -3619,7 +3619,7 @@ _cairo_ps_surface_emit_surface (cairo_ps_surface_t *surface, cairo_emit_surface_params_t *params) { cairo_int_status_t status; - cairo_output_stream_t *old_stream; + cairo_output_stream_t *old_stream = NULL; cairo_bool_t use_form; /* Try emitting as a form. Returns unsupported if the surface is diff --git a/WebKitLibraries/cairo/src/cairo-surface.c b/WebKitLibraries/cairo/src/cairo-surface.c index 961894a14..5580b153c 100644 --- a/WebKitLibraries/cairo/src/cairo-surface.c +++ b/WebKitLibraries/cairo/src/cairo-surface.c @@ -2654,6 +2654,7 @@ composite_one_color_glyph (cairo_surface_t *surface, status = surface->backend->mask (surface, op, pattern, pattern, clip); else status = surface->backend->paint (surface, op, pattern, clip); + cairo_pattern_destroy (pattern); } return status; @@ -2742,7 +2743,7 @@ composite_color_glyphs (cairo_surface_t *surface, status = composite_one_color_glyph (surface, op, source, clip, &glyphs[gp], scaled_glyph); - if (unlikely (status)) + if (unlikely (status && status != CAIRO_INT_STATUS_NOTHING_TO_DO)) goto UNLOCK; } @@ -2776,7 +2777,7 @@ composite_color_glyphs (cairo_surface_t *surface, status = composite_one_color_glyph (surface, op, source, clip, &glyphs[glyph_pos], scaled_glyph); - if (unlikely (status)) + if (unlikely (status && status != CAIRO_INT_STATUS_NOTHING_TO_DO)) goto UNLOCK; } @@ -2854,7 +2855,7 @@ _cairo_surface_show_text_glyphs (cairo_surface_t *surface, scaled_font, clip); - if (unlikely (status)) + if (unlikely (status && status != CAIRO_INT_STATUS_NOTHING_TO_DO)) goto DONE; if (num_glyphs == 0) diff --git a/WebKitLibraries/cairo/src/cairo-svg-surface.c b/WebKitLibraries/cairo/src/cairo-svg-surface.c index 1b568542e..c2ef83efa 100644 --- a/WebKitLibraries/cairo/src/cairo-svg-surface.c +++ b/WebKitLibraries/cairo/src/cairo-svg-surface.c @@ -124,16 +124,16 @@ static const char * _cairo_svg_internal_version_strings[CAIRO_SVG_VERSION_LAST] static const char * _cairo_svg_unit_strings[] = { - [CAIRO_SVG_UNIT_USER] = "", - [CAIRO_SVG_UNIT_EM] = "em", - [CAIRO_SVG_UNIT_EX] = "ex", - [CAIRO_SVG_UNIT_PX] = "px", - [CAIRO_SVG_UNIT_IN] = "in", - [CAIRO_SVG_UNIT_CM] = "cm", - [CAIRO_SVG_UNIT_MM] = "mm", - [CAIRO_SVG_UNIT_PT] = "pt", - [CAIRO_SVG_UNIT_PC] = "pc", - [CAIRO_SVG_UNIT_PERCENT] = "%" + "", + "em", + "ex", + "px", + "in", + "cm", + "mm", + "pt", + "pc", + "%" }; struct cairo_svg_page { diff --git a/WebKitLibraries/cairo/src/cairo-svg.h b/WebKitLibraries/cairo/src/cairo-svg.h index 95434dcf6..4d24857bc 100644 --- a/WebKitLibraries/cairo/src/cairo-svg.h +++ b/WebKitLibraries/cairo/src/cairo-svg.h @@ -54,7 +54,7 @@ typedef enum _cairo_svg_version { } cairo_svg_version_t; /** - * cairo_svg_version_t: + * cairo_svg_unit_t: * * @CAIRO_SVG_UNIT_USER: User unit, a value in the current coordinate system. * If used in the root element for the initial coordinate systems it diff --git a/WebKitLibraries/cairo/src/cairo-types-private.h b/WebKitLibraries/cairo/src/cairo-types-private.h index 3d15d968e..da373030c 100644 --- a/WebKitLibraries/cairo/src/cairo-types-private.h +++ b/WebKitLibraries/cairo/src/cairo-types-private.h @@ -194,6 +194,7 @@ struct _cairo_font_options { cairo_hint_style_t hint_style; cairo_hint_metrics_t hint_metrics; cairo_round_glyph_positions_t round_glyph_positions; + char *variations; }; struct _cairo_glyph_text_info { diff --git a/WebKitLibraries/cairo/src/cairo-version.c b/WebKitLibraries/cairo/src/cairo-version.c index a94cef681..65ae2b108 100644 --- a/WebKitLibraries/cairo/src/cairo-version.c +++ b/WebKitLibraries/cairo/src/cairo-version.c @@ -115,8 +115,8 @@ * * Compile-time * ------------ - * CAIRO_VERSION_STRING Human-readable - * CAIRO_VERSION Encoded, suitable for comparison + * #CAIRO_VERSION_STRING Human-readable + * #CAIRO_VERSION Encoded, suitable for comparison *   * Run-time * -------- diff --git a/WebKitLibraries/cairo/src/cairo-xlib-render-compositor.c b/WebKitLibraries/cairo/src/cairo-xlib-render-compositor.c index 4352b44c1..4b75109e0 100644 --- a/WebKitLibraries/cairo/src/cairo-xlib-render-compositor.c +++ b/WebKitLibraries/cairo/src/cairo-xlib-render-compositor.c @@ -1830,6 +1830,9 @@ composite_traps (void *abstract_dst, //X_DEBUG ((display->display, "composite_trapezoids (dst=%x)", (unsigned int) dst->drawable)); + if (traps->num_traps == 0) + return CAIRO_STATUS_SUCCESS; + if (dst->base.is_clear && (op == CAIRO_OPERATOR_OVER || op == CAIRO_OPERATOR_ADD)) { diff --git a/WebKitLibraries/cairo/src/cairo-xlib-surface.c b/WebKitLibraries/cairo/src/cairo-xlib-surface.c index 908d76daf..bca0cc585 100644 --- a/WebKitLibraries/cairo/src/cairo-xlib-surface.c +++ b/WebKitLibraries/cairo/src/cairo-xlib-surface.c @@ -1886,7 +1886,7 @@ static cairo_bool_t valid_size (int width, int height) /* Note: the minimum surface size allowed in the X protocol is 1x1. * However, as we historically did not check the minimum size we * allowed applications to lie and set the correct size later (one hopes). - * To preserve compatability we must allow applications to use + * To preserve compatibility we must allow applications to use * 0x0 surfaces. */ return (width >= 0 && width <= XLIB_COORD_MAX && diff --git a/WebKitLibraries/cairo/src/cairo-xml-surface.c b/WebKitLibraries/cairo/src/cairo-xml-surface.c index b885fff90..3c13fa3f5 100644 --- a/WebKitLibraries/cairo/src/cairo-xml-surface.c +++ b/WebKitLibraries/cairo/src/cairo-xml-surface.c @@ -36,7 +36,7 @@ /* This surface is intended to produce a verbose, hierarchical, DAG XML file * representing a single surface. It is intended to be used by debuggers, - * such as cairo-sphinx, or by application test-suites that what a log of + * such as cairo-sphinx, or by application test-suites that want a log of * operations. */ diff --git a/WebKitLibraries/cairo/src/cairo.c b/WebKitLibraries/cairo/src/cairo.c index 79d4eb204..4bdd6d641 100644 --- a/WebKitLibraries/cairo/src/cairo.c +++ b/WebKitLibraries/cairo/src/cairo.c @@ -257,7 +257,7 @@ * no operations are enclosed, the y coordidate is 0. * * @internal: A boolean that if true, the destination name may be - * ommitted from PDF where possible. In this case, links + * omitted from PDF where possible. In this case, links * refer directly to the page and position instead of via * the named destination table. Note that if this * destination is referenced by another PDF (see [File Links][file-link]), @@ -280,10 +280,10 @@ * # Document Structure (PDF) # {#doc-struct} * * The document structure tags provide a means of specifying structural information - * such as headers, paragraphs, tables, and figures. The inclusion of structural information faciliates: + * such as headers, paragraphs, tables, and figures. The inclusion of structural information facilitates: * * Extraction of text and graphics for copy and paste * * Reflow of text and graphics in the viewer - * * Proccessing text eg searching and indexing + * * Processing text eg searching and indexing * * Conversion to other formats * * Accessability support * diff --git a/WebKitLibraries/cairo/src/cairo.h b/WebKitLibraries/cairo/src/cairo.h index b9f0a9a10..e2e523716 100644 --- a/WebKitLibraries/cairo/src/cairo.h +++ b/WebKitLibraries/cairo/src/cairo.h @@ -398,7 +398,7 @@ typedef enum _cairo_content { * @CAIRO_FORMAT_A1: each pixel is a 1-bit quantity holding * an alpha value. Pixels are packed together into 32-bit * quantities. The ordering of the bits matches the - * endianess of the platform. On a big-endian machine, the + * endianness of the platform. On a big-endian machine, the * first pixel is in the uppermost bit, on a little-endian * machine the first pixel is in the least-significant bit. (Since 1.0) * @CAIRO_FORMAT_RGB16_565: each pixel is a 16-bit quantity @@ -1430,6 +1430,13 @@ cairo_font_options_set_hint_metrics (cairo_font_options_t *options, cairo_public cairo_hint_metrics_t cairo_font_options_get_hint_metrics (const cairo_font_options_t *options); +cairo_public const char * +cairo_font_options_get_variations (cairo_font_options_t *options); + +cairo_public void +cairo_font_options_set_variations (cairo_font_options_t *options, + const char *variations); + /* This interface is for dealing with text as text, not caring about the font object inside the the cairo_t. */ diff --git a/WebKitLibraries/cairo/src/cairoint.h b/WebKitLibraries/cairo/src/cairoint.h index 154270656..cfae18cf9 100644 --- a/WebKitLibraries/cairo/src/cairoint.h +++ b/WebKitLibraries/cairo/src/cairoint.h @@ -880,6 +880,9 @@ cairo_private void _cairo_font_options_init_copy (cairo_font_options_t *options, const cairo_font_options_t *other); +cairo_private void +_cairo_font_options_fini (cairo_font_options_t *options); + cairo_private void _cairo_font_options_set_lcd_filter (cairo_font_options_t *options, cairo_lcd_filter_t lcd_filter); @@ -912,6 +915,9 @@ _cairo_validate_text_clusters (const char *utf8, int num_clusters, cairo_text_cluster_flags_t cluster_flags); +cairo_private unsigned long +_cairo_string_hash (const char *str, int len); + cairo_private cairo_status_t _cairo_intern_string (const char **str_inout, int len); @@ -1512,7 +1518,7 @@ _cairo_surface_release_device_reference (cairo_surface_t *surface); * for that, even without being considered "valid" for the sake of * things like cairo_image_surface_create(). * - * Since 1.2.0 we ran into the same situtation with X servers with BGR + * Since 1.2.0 we ran into the same situation with X servers with BGR * visuals. This time we invented #cairo_internal_format_t instead, * (see it for more discussion). * @@ -1580,6 +1586,9 @@ _cairo_image_scaled_glyph_fini (cairo_scaled_font_t *scaled_font, cairo_private void _cairo_image_reset_static_data (void); +cairo_private void +_cairo_image_compositor_reset_static_data (void); + cairo_private cairo_surface_t * _cairo_image_surface_create_with_pixman_format (unsigned char *data, pixman_format_code_t pixman_format, diff --git a/WebKitLibraries/cairo/src/win32/cairo-win32-display-surface.c b/WebKitLibraries/cairo/src/win32/cairo-win32-display-surface.c index 92d1f6ce4..ccfad10dd 100644 --- a/WebKitLibraries/cairo/src/win32/cairo-win32-display-surface.c +++ b/WebKitLibraries/cairo/src/win32/cairo-win32-display-surface.c @@ -214,10 +214,10 @@ _create_dc_and_bitmap (cairo_win32_display_surface_t *surface, goto FAIL; surface->bitmap = CreateDIBSection (surface->win32.dc, - bitmap_info, - DIB_RGB_COLORS, - &bits, - NULL, 0); + bitmap_info, + DIB_RGB_COLORS, + &bits, + NULL, 0); if (!surface->bitmap) goto FAIL; @@ -289,8 +289,8 @@ _create_dc_and_bitmap (cairo_win32_display_surface_t *surface, static cairo_surface_t * _cairo_win32_display_surface_create_for_dc (HDC original_dc, cairo_format_t format, - int width, - int height) + int width, + int height) { cairo_status_t status; cairo_device_t *device; @@ -325,6 +325,8 @@ _cairo_win32_display_surface_create_for_dc (HDC original_dc, surface->win32.extents.y = 0; surface->win32.extents.width = width; surface->win32.extents.height = height; + surface->win32.x_ofs = 0; + surface->win32.y_ofs = 0; surface->initial_clip_rgn = NULL; surface->had_simple_clip = FALSE; @@ -466,7 +468,8 @@ _cairo_win32_display_surface_map_to_image (void *abstract_sur surface->win32.extents.width, surface->win32.extents.height, surface->win32.dc, - surface->win32.extents.x, surface->win32.extents.y, + surface->win32.extents.x + surface->win32.x_ofs, /* Handling multi-monitor... */ + surface->win32.extents.y + surface->win32.y_ofs, /* ... setup on Win32 */ SRCCOPY)) { status = _cairo_error (CAIRO_STATUS_DEVICE_ERROR); goto err; @@ -544,11 +547,12 @@ _cairo_win32_display_surface_flush (void *abstract_surface, unsigned flags) if (damage->status) { if (!BitBlt (surface->win32.dc, - 0, 0, + surface->win32.extents.x + surface->win32.x_ofs, /* Handling multi-monitor... */ + surface->win32.extents.y + surface->win32.y_ofs, /* ... setup on Win32 */ surface->win32.extents.width, surface->win32.extents.height, fallback->win32.dc, - 0, 0, + surface->win32.extents.x, surface->win32.extents.y, SRCCOPY)) status = _cairo_win32_print_gdi_error (__FUNCTION__); } else if (damage->region) { @@ -561,7 +565,8 @@ _cairo_win32_display_surface_flush (void *abstract_surface, unsigned flags) rect.x, rect.y, rect.width, rect.height)); if (!BitBlt (surface->win32.dc, - rect.x, rect.y, + rect.x + surface->win32.x_ofs, /* Handling multi-monitor... */ + rect.y + surface->win32.y_ofs, /* ... setup on Win32 */ rect.width, rect.height, fallback->win32.dc, rect.x, rect.y, @@ -628,6 +633,35 @@ _cairo_win32_save_initial_clip (HDC hdc, cairo_win32_display_surface_t *surface) surface->win32.extents.width = rect.right - rect.left; surface->win32.extents.height = rect.bottom - rect.top; + /* On multi-monitor setup, under Windows, the primary monitor always + * have origin (0,0). Any monitors that extends to the left or above + * will have coordinates in the negative range. Take this into + * account, by forcing our Win32 surface to start at extent (0,0) and + * using a device offset. Cairo does not handle extents with negative + * offsets. + */ + surface->win32.x_ofs = 0; + surface->win32.y_ofs = 0; + if ((surface->win32.extents.x < 0) || + (surface->win32.extents.y < 0)) { + /* Negative offsets occurs for (and ONLY for) the desktop DC (virtual + * desktop), when a monitor extend to the left or above the primary + * monitor. + * + * More info @ https://www.microsoft.com/msj/0697/monitor/monitor.aspx + * + * Note that any other DC, including memory DC created with + * CreateCompatibleDC() will have extents in the + * positive range. This will be taken into account later when we perform + * raster operations between the DC (may have to perform offset + * translation). + */ + surface->win32.x_ofs = surface->win32.extents.x; + surface->win32.y_ofs = surface->win32.extents.y; + surface->win32.extents.x = 0; + surface->win32.extents.y = 0; + } + surface->initial_clip_rgn = NULL; surface->had_simple_clip = FALSE; diff --git a/WebKitLibraries/cairo/src/win32/cairo-win32-private.h b/WebKitLibraries/cairo/src/win32/cairo-win32-private.h index 6fdf96f87..e3e13d5b1 100644 --- a/WebKitLibraries/cairo/src/win32/cairo-win32-private.h +++ b/WebKitLibraries/cairo/src/win32/cairo-win32-private.h @@ -79,7 +79,7 @@ enum { /* Whether we can use the CHECKJPEGFORMAT escape function */ CAIRO_WIN32_SURFACE_CAN_CHECK_JPEG = (1<<7), - /* Whether we can use the CHECKJPEGFORMAT escape function */ + /* Whether we can use the CHECKPNGFORMAT escape function */ CAIRO_WIN32_SURFACE_CAN_CHECK_PNG = (1<<8), }; @@ -100,6 +100,24 @@ typedef struct _cairo_win32_surface { * that match bounds of the clipped region. */ cairo_rectangle_int_t extents; + + /* Offset added to extents, used when the extents start with a negative + * offset, which can occur on Windows for, and only for, desktop DC. This + * occurs when you have multiple monitors, and at least one monitor + * extends to the left, or above, the primaty monitor. The primary + * monitor on Windows always starts with offset (0,0), and any other points + * to the left, or above, have negative offsets. So the 'desktop DC' is + * in fact a 'virtual desktop' which can start with extents in the negative + * range. + * + * Why use new variables, and not the device transform? Simply because since + * the device transform functions are exposed, a lot of 3rd party libraries + * simply overwrite those, disregarding the prior content, instead of actually + * adding the offset. GTK for example simply resets the device transform of the + * desktop cairo surface to zero. So make some private member variables for + * this, which will not be fiddled with externally. + */ + int x_ofs, y_ofs; } cairo_win32_surface_t; #define to_win32_surface(S) ((cairo_win32_surface_t *)(S)) @@ -107,7 +125,7 @@ typedef struct _cairo_win32_display_surface { cairo_win32_surface_t win32; /* We create off-screen surfaces as DIBs or DDBs, based on what we created - * originally*/ + * originally */ HBITMAP bitmap; cairo_bool_t is_dib; @@ -115,7 +133,7 @@ typedef struct _cairo_win32_display_surface { * select back into the DC before deleting the DC and our * bitmap. For Windows XP, this doesn't seem to be necessary * ... we can just delete the DC and that automatically unselects - * out bitmap. But it's standard practice so apparently is needed + * our bitmap. But it's standard practice so apparently is needed * on some versions of Windows. */ HBITMAP saved_dc_bitmap; @@ -182,7 +200,7 @@ cairo_private void _cairo_win32_display_surface_discard_fallback (cairo_win32_display_surface_t *surface); cairo_bool_t -_cairo_win32_surface_get_extents (void *abstract_surface, +_cairo_win32_surface_get_extents (void *abstract_surface, cairo_rectangle_int_t *rectangle); uint32_t @@ -198,7 +216,7 @@ _cairo_win32_surface_emit_glyphs (cairo_win32_surface_t *dst, static inline void _cairo_matrix_to_win32_xform (const cairo_matrix_t *m, - XFORM *xform) + XFORM *xform) { xform->eM11 = (FLOAT) m->xx; xform->eM21 = (FLOAT) m->xy; diff --git a/webkit/JavaScriptCore/ChangeLog b/webkit/JavaScriptCore/ChangeLog index 41240ec6b..1d9ef836f 100644 --- a/webkit/JavaScriptCore/ChangeLog +++ b/webkit/JavaScriptCore/ChangeLog @@ -1,3 +1,1273 @@ +2018-07-26 Babak Shafiei + + Cherry-pick r234269. rdar://problem/42650430 + + arrayProtoPrivateFuncConcatMemcpy() should handle copying from an Undecided type array. + https://bugs.webkit.org/show_bug.cgi?id=188065 + + + Reviewed by Saam Barati. + + JSTests: + + * stress/regress-188065.js: Added. + + Source/JavaScriptCore: + + * runtime/ArrayPrototype.cpp: + (JSC::clearElement): + (JSC::copyElements): + (JSC::arrayProtoPrivateFuncConcatMemcpy): + + + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234269 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-07-26 Mark Lam + + arrayProtoPrivateFuncConcatMemcpy() should handle copying from an Undecided type array. + https://bugs.webkit.org/show_bug.cgi?id=188065 + + + Reviewed by Saam Barati. + + * runtime/ArrayPrototype.cpp: + (JSC::clearElement): + (JSC::copyElements): + (JSC::arrayProtoPrivateFuncConcatMemcpy): + +2017-05-19 Filip Pizlo + + Deduplicate some code in arrayProtoPrivateFuncConcatMemcpy + https://bugs.webkit.org/show_bug.cgi?id=172382 + + Reviewed by Saam Barati. + + This is just a small clean-up - my last patch here created some unnecessary code duplication. + + * runtime/ArrayPrototype.cpp: + (JSC::arrayProtoPrivateFuncConcatMemcpy): + +2017-05-19 Filip Pizlo + + arrayProtoPrivateFuncConcatMemcpy needs to be down with firstArray being undecided + https://bugs.webkit.org/show_bug.cgi?id=172369 + + Reviewed by Mark Lam. + + * heap/Subspace.cpp: Reshaped the code a bit to aid debugging. + (JSC::Subspace::allocate): + (JSC::Subspace::tryAllocate): + * runtime/ArrayPrototype.cpp: + (JSC::arrayProtoPrivateFuncConcatMemcpy): Fix the bug! + * runtime/ObjectInitializationScope.cpp: Provide even better feedback. + (JSC::ObjectInitializationScope::verifyPropertiesAreInitialized): + +2016-08-31 Filip Pizlo + + Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression + https://bugs.webkit.org/show_bug.cgi?id=160125 + + Reviewed by Geoffrey Garen and Keith Miller. + + In order to make the GC concurrent (bug 149432), we would either need to enable concurrent + copying or we would need to not copy. Concurrent copying carries a 1-2% throughput overhead + from the barriers alone. Considering that MarkedSpace does a decent job of avoiding + fragmentation, it's unlikely that it's worth paying 1-2% throughput for copying. So, we want + to get rid of copied space. This change moves copied space's biggest client over to marked + space. + + Moving butterflies to marked space means having them use the new Auxiliary HeapCell + allocation path. This is a fairly mechanical change, but it caused performance regressions + everywhere, so this change also fixes MarkedSpace's performance issues. + + At a high level the mechanical changes are: + + - We use AuxiliaryBarrier instead of CopyBarrier. + + - We use tryAllocateAuxiliary instead of tryAllocateStorage. I got rid of the silly + CheckedBoolean stuff, since it's so much more trouble than it's worth. + + - The JITs have to emit inlined marked space allocations instead of inline copy space + allocations. + + - Everyone has to get used to zeroing their butterflies after allocation instead of relying + on them being pre-zeroed by the GC. Copied space would zero things for you, while marked + space doesn't. + + That's about 1/3 of this change. But this led to performance problems, which I fixed with + optimizations that amounted to a major MarkedSpace rewrite: + + - MarkedSpace always causes internal fragmentation for array allocations because the vector + length we choose when we resize usually leads to a cell size that doesn't correspond to any + size class. I got around this by making array allocations usually round up vectorLength to + the maximum allowed by the size class that we would have allocated in. Also, + ensureLengthSlow() and friends first make sure that the requested length can't just be + fulfilled with the current allocation size. This safeguard means that not every array + allocation has to do size class queries. For example, the fast path of new Array(length) + never does any size class queries, under the assumption that (1) the speed gained from + avoiding an ensureLengthSlow() call, which then just changes the vectorLength by doing the + size class query, is too small to offset the speed lost by doing the query on every + allocation and (2) new Array(length) is a pretty good hint that resizing is not very + likely. + + - Size classes in MarkedSpace were way too precise, which led to external fragmentation. This + changes MarkedSpace size classes to use a linear progression for very small sizes followed + by a geometric progression that naturally transitions to a hyperbolic progression. We want + hyperbolic sizes when we get close to blockSize: for example the largest size we want is + payloadSize / 2 rounded down, to ensure we get exactly two cells with minimal slop. The + next size down should be payloadSize / 3 rounded down, and so on. After the last precise + size (80 bytes), we proceed using a geometric progression, but round up each size to + minimize slop at the end of the block. This naturally causes the geometric progression to + turn hyperbolic for large sizes. The size class configuration happens at VM start-up, so + it can be controlled with runtime options. I found that a base of 1.4 works pretty well. + + - Large allocations caused massive internal fragmentation, since the smallest large + allocation had to use exactly blockSize, and the largest small allocation used + blockSize / 2. The next size up - the first large allocation size to require two blocks - + also had 50% internal fragmentation. This is because we required large allocations to be + blockSize aligned, so that MarkedBlock::blockFor() would work. I decided to rewrite all of + that. Cells no longer have to be owned by a MarkedBlock. They can now alternatively be + owned by a LargeAllocation. These two things are abstracted as CellContainer. You know that + a cell is owned by a LargeAllocation if the MarkedBlock::atomSize / 2 bit is set. + Basically, large allocations are deliberately misaligned by 8 bytes. This actually works + out great since (1) typed arrays won't use large allocations anyway since they have their + own malloc fallback and (2) large array butterflies already have a 8 byte header, which + means that the 8 byte base misalignment aligns the large array payload on a 16 byte + boundary. I took extreme care to make sure that the isLargeAllocation bit checks are as + rare as possible; for example, ExecState::vm() skips the check because we know that callees + must be small allocations. It's also possible to use template tricks to do one check for + cell container kind, and then invoke a function specialized for MarkedBlock or a function + specialized for LargeAllocation. LargeAllocation includes stubs for all MarkedBlock methods + that get used from functions that are template-specialized like this. That's mostly to + speed up the GC marking code. Most other code can use CellContainer API or HeapCell API + directly. That's another thing: HeapCell, the common base of JSCell and auxiliary + allocations, is now smart enough to do a lot of things for you, like HeapCell::vm(), + HeapCell::heap(), HeapCell::isLargeAllocation(), and HeapCell::cellContainer(). The size + cutoff for large allocations is runtime-configurable, so long as you don't choose something + so small that callees end up large. I found that 400 bytes is roughly optimal. This means + that the MarkedBlock size classes end up being: + + 16, 32, 48, 64, 80, 112, 160, 224, 320 + + The next size class would have been 432, but that's above the 400 byte cutoff. All of this + is configurable with --sizeClassProgression and --largeAllocationCutoff. You can see what + size classes you end up with by doing --dumpSizeClasses=true. + + - Copied space uses 64KB blocks, while marked space used to use 16KB blocks. Allocating a lot + of stuff in 16KB blocks was slower than allocating it in 64KB blocks because the GC had a + lot of per-block overhead. I removed this overhead: It's now 2x faster to scan all + MarkedBlocks because the list that contains the interesting meta-data is allocated on the + side, for better locality during a sequential walk. It's no longer necessary to scan + MarkedBlocks to find WeakSets, since the sets of WeakSets for eden scan and full scan are + maintained on-the-fly. It's no longer necessary to scan all MarkedBlocks to clear mark + bits because we now use versioned mark bits: to clear then, just increment the 64-bit + heap version. It's no longer necessary to scan retired MarkedBlocks while allocating + because marking retires them on-the-fly. It's no longer necessary to sort all blocks in + the IncrementalSweeper's snapshot because blocks now know if they are in the snapshot. Put + together, these optimizations allowed me to reduce block size to 16KB without losing much + performance. There is some small perf loss on JetStream/splay, but not enough to hurt + JetStream overall. I tried reducing block sizes further, to 4KB, since that is a + progression on membuster. That's not possible yet, since there is still enough per-block + overhead yet that such a reduction hurts JetStream too much. I filed a bug about improving + this further: https://bugs.webkit.org/show_bug.cgi?id=161581. + + - Even after all of that, copying butterflies was still faster because it allowed us to skip + sweeping dead space. A good GC allocates over dead bytes without explicitly freeing them, + so the GC pause is O(size of live), not O(size of live + dead). O(dead) is usually much + larger than O(live), especially in an eden collection. Copying satisfies this premise while + mark+sweep does not. So, I invented a new kind of allocator: bump'n'pop. Previously, our + MarkedSpace allocator was a freelist pop. That's simple and easy to inline but requires + that we walk the block to build a free list. This means walking dead space. The new + allocator allows totally free MarkedBlocks to simply set up a bump-pointer arena instead. + The allocator is a hybrid of bump-pointer and freelist pop. It tries bump first. The bump + pointer always bumps by cellSize, so the result of filling a block with bumping looks as if + we had used freelist popping to fill it. Additionally, each MarkedBlock now has a bit to + quickly tell if the block is entirely free. This makes sweeping O(1) whenever a MarkedBlock + is completely empty, which is the common case because of the generational hypothesis: the + number of objects that survive an eden collection is a tiny fraction of the number of + objects that had been allocated, and this fraction is so small that there are typically + fewer than one survivors per MarkedBlock. This change was enough to make this change a net + win over tip-of-tree. + + - FTL now shares the same allocation fast paths as everything else, which is great, because + bump'n'pop has gnarly control flow. We don't really want B3 to have to think about that + control flow, since it won't be able to improve the machine code we write ourselves. GC + fast paths are best written in assembly. So, I've empowered B3 to have even better support + for Patchpoint terminals. It's now totally fine for a Patchpoint terminal to be non-Void. + So, the new FTL allocation fast paths are just Patchpoint terminals that call through to + AssemblyHelpers::emitAllocate(). B3 still reasons about things like constant-folding the + size class calculation and constant-hoisting the allocator. Also, I gave the FTL the + ability to constant-fold some allocator logic (in case we first assume that we're doing a + variable-length allocation but then realize that the length is known). I think it makes + sense to have constant folding rules in FTL::Output, or whatever the B3 IR builder is, + since this makes lowering easier (you can constant fold during lowering more easily) and it + reduces the amount of malloc traffic. In the future, we could teach B3 how to better + constant-fold this code. That would require allowing loads to be constant-folded, which is + doable but hella tricky. + + - It used to be that if a logical object allocation required two physical allocations (first + the butterfly and then the cell), then the JIT would emit the code in such a way that a + failure in the second fast path would cause us to forget the successful first physical + allocation. This was pointlessly wasteful. It turns out that it's very cheap to devote a + register to storing either the butterfly or null, because the butterfly register is anyway + going to be free inside the first allocation. The only overhead here is zeroing the + butterfly register. With that in place, we can just pass the butterfly-or-null to the slow + path, which can then either allocate a butterfly or not. So now we never waste a successful + allocation. This patch implements such a solution both in DFG (where it's easy to do this + since we control registers already) and in FTL (where it's annoying, because mutable + "butterfly-or-null" variables are hard to say in SSA; also I realized that we had code + duplicated the JSArray allocation utility, so I deduplicated it). This came up because in + one version of this patch, this wastage would resonate with some Kraken benchmark: the + benchmark would always allocate N small things followed by one bigger thing. The problem + was I accidentally adjusted the various fixed overheads in MarkedBlock in such a way that + the JSObject size class, which both the small and big thing shared for their cell, could + hold exactly N cells per MarkedBlock. Then the benchmark would always call slow path when + it allocated the big thing. So, it would end up having to allocate the big thing's large + butterfly twice, every single time! Ouch! + + - It used to be that we zeroed CopiedBlocks using memset, and so array allocations enjoyed + amortization of the cost of zeroing. This doesn't work anymore - it's now up to the client + of the allocator to initialize the object to whatever state they need. It used to be that + we would just use a dumb loop. I initially changed this so that we would end up in memset + for large allocations, but this didn't actually help performance that much. I got a much + better result by playing with different memsets written in assembly. First I wrote one + using non-temporal stores. That was a small speed-up over memset. Then I tried the classic + "rep stos" approach, and holy cow that version was fast. It's a ~20% speed-up on array + allocation microbenchmarks. So, this patch adds code paths to do "rep stos" on x86_64, or + memset, or use a loop, as appropriate, for both "contiguous" arrays (holes are zero) and + double arrays (holes are PNaN). Note that the JIT always emits either a loop or a flat slab + of stores (if the size is known), but those paths in the JIT won't trigger for + NewArrayWithSize() if the size is large, since that takes us to the + operationNewArrayWithSize() slow path, which calls into JSArray::create(). That's why the + optimizations here are all in JSArray::create() - that's the hot place for large arrays + that need to be filled with holes. + + All of this put together gives us neutral perf on JetStream, membuster, and PLT3, a ~1% + regression on Speedometer, and up to a 4% regression Kraken. The Kraken regression is + because Kraken was allocating exactly 1024 element arrays at a rate of 400MB/sec. This is a + best-case scenario for bump allocation. I think that we should fix bmalloc to make up the + difference, but take the hit for now because it's a crazy corner case. By comparison, the + alternative approach of using a copy barrier would have cost us 1-2%. That's the real + apples-to-apples comparison if your premise is that we should have a concurrent GC. After we + finish removing copied space, we will be barrier-ready for concurrent GC: we already have a + marking barrier and we simply won't need a copying barrier. This change gets us there for + the purposes of our benchmarks, since the remaining clients of copied space are not very + important. On the other hand, if we keep copying, then getting barrier-ready would mean + adding back the copy barrier, which costs more perf. + + We might get bigger speed-ups once we remove CopiedSpace altogether. That requires moving + typed arrays and a few other weird things over to Aux MarkedSpace. + + This also includes some header sanitization. The introduction of AuxiliaryBarrier, HeapCell, + and CellContainer meant that I had to include those files from everywhere. Fortunately, + just including JSCInlines.h (instead of manually including the files that includes) is + usually enough. So, I made most of JSC's cpp files include JSCInlines.h, which is something + that we were already basically doing. In places where JSCInlines.h would be too much, I just + included HeapInlines.h. This got weird, because we previously included HeapInlines.h from + JSObject.h. That's bad because it led to some circular dependencies, so I fixed it - but that + meant having to manually include HeapInlines.h from the places that previously got it + implicitly via JSObject.h. But that led to more problems for some reason: I started getting + build errors because non-JSC files were having trouble including Opcode.h. That's just silly, + since Opcode.h is meant to be an internal JSC header. So, I made it an internal header and + made it impossible to include it from outside JSC. This was a lot of work, but it was + necessary to get the patch to build on all ports. It's also a net win. There were many places + in WebCore that were transitively including a *ton* of JSC headers just because of the + JSObject.h->HeapInlines.h edge and a bunch of dependency edges that arose from some public + (for WebCore) JSC headers needing Interpreter.h or Opcode.h for bad reasons. + + * API/JSManagedValue.mm: + (-[JSManagedValue initWithValue:]): + * API/JSTypedArray.cpp: + * API/ObjCCallbackFunction.mm: + * API/tests/testapi.mm: + (testObjectiveCAPI): + (testWeakValue): Deleted. + * CMakeLists.txt: + * JavaScriptCore.xcodeproj/project.pbxproj: + * Scripts/builtins/builtins_generate_combined_implementation.py: + (BuiltinsCombinedImplementationGenerator.generate_secondary_header_includes): + * Scripts/builtins/builtins_generate_internals_wrapper_implementation.py: + (BuiltinsInternalsWrapperImplementationGenerator.generate_secondary_header_includes): + * Scripts/builtins/builtins_generate_separate_implementation.py: + (BuiltinsSeparateImplementationGenerator.generate_secondary_header_includes): + * assembler/AbstractMacroAssembler.h: + (JSC::AbstractMacroAssembler::JumpList::link): + (JSC::AbstractMacroAssembler::JumpList::linkTo): + * assembler/MacroAssembler.h: + * assembler/MacroAssemblerARM64.h: + (JSC::MacroAssemblerARM64::add32): + * assembler/MacroAssemblerCodeRef.cpp: Added. + (JSC::MacroAssemblerCodePtr::createLLIntCodePtr): + (JSC::MacroAssemblerCodePtr::dumpWithName): + (JSC::MacroAssemblerCodePtr::dump): + (JSC::MacroAssemblerCodeRef::createLLIntCodeRef): + (JSC::MacroAssemblerCodeRef::dump): + * assembler/MacroAssemblerCodeRef.h: + (JSC::MacroAssemblerCodePtr::createLLIntCodePtr): Deleted. + (JSC::MacroAssemblerCodePtr::dumpWithName): Deleted. + (JSC::MacroAssemblerCodePtr::dump): Deleted. + (JSC::MacroAssemblerCodeRef::createLLIntCodeRef): Deleted. + (JSC::MacroAssemblerCodeRef::dump): Deleted. + * b3/B3BasicBlock.cpp: + (JSC::B3::BasicBlock::appendBoolConstant): + * b3/B3BasicBlock.h: + * b3/B3DuplicateTails.cpp: + * b3/B3StackmapGenerationParams.h: + * b3/testb3.cpp: + (JSC::B3::testPatchpointTerminalReturnValue): + (JSC::B3::run): + * bindings/ScriptValue.cpp: + * bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp: + * bytecode/BytecodeBasicBlock.cpp: + * bytecode/BytecodeLivenessAnalysis.cpp: + * bytecode/BytecodeUseDef.h: + * bytecode/CallLinkInfo.cpp: + (JSC::CallLinkInfo::callTypeFor): + * bytecode/CallLinkInfo.h: + (JSC::CallLinkInfo::callTypeFor): Deleted. + * bytecode/CallLinkStatus.cpp: + * bytecode/CodeBlock.cpp: + (JSC::CodeBlock::finishCreation): + (JSC::CodeBlock::clearLLIntGetByIdCache): + (JSC::CodeBlock::predictedMachineCodeSize): + * bytecode/CodeBlock.h: + (JSC::CodeBlock::jitCodeMap): Deleted. + (JSC::clearLLIntGetByIdCache): Deleted. + * bytecode/ExecutionCounter.h: + * bytecode/Instruction.h: + * bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp: + (JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::fireInternal): + * bytecode/ObjectAllocationProfile.h: + (JSC::ObjectAllocationProfile::isNull): + (JSC::ObjectAllocationProfile::initialize): + * bytecode/Opcode.h: + (JSC::padOpcodeName): + * bytecode/PolymorphicAccess.cpp: + (JSC::AccessCase::generateImpl): + (JSC::PolymorphicAccess::regenerate): + * bytecode/PolymorphicAccess.h: + * bytecode/PreciseJumpTargets.cpp: + * bytecode/StructureStubInfo.cpp: + * bytecode/StructureStubInfo.h: + * bytecode/UnlinkedCodeBlock.cpp: + (JSC::UnlinkedCodeBlock::vm): Deleted. + * bytecode/UnlinkedCodeBlock.h: + * bytecode/UnlinkedInstructionStream.cpp: + * bytecode/UnlinkedInstructionStream.h: + * dfg/DFGOperations.cpp: + * dfg/DFGSpeculativeJIT.cpp: + (JSC::DFG::SpeculativeJIT::emitAllocateRawObject): + (JSC::DFG::SpeculativeJIT::compileMakeRope): + (JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage): + (JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage): + * dfg/DFGSpeculativeJIT.h: + (JSC::DFG::SpeculativeJIT::emitAllocateJSCell): + (JSC::DFG::SpeculativeJIT::emitAllocateJSObject): + * dfg/DFGSpeculativeJIT32_64.cpp: + (JSC::DFG::SpeculativeJIT::compile): + (JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize): + * dfg/DFGSpeculativeJIT64.cpp: + (JSC::DFG::SpeculativeJIT::compile): + (JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize): + * dfg/DFGStrengthReductionPhase.cpp: + (JSC::DFG::StrengthReductionPhase::handleNode): + * ftl/FTLAbstractHeapRepository.h: + * ftl/FTLCompile.cpp: + * ftl/FTLJITFinalizer.cpp: + * ftl/FTLLowerDFGToB3.cpp: + (JSC::FTL::DFG::LowerDFGToB3::compileCreateDirectArguments): + (JSC::FTL::DFG::LowerDFGToB3::compileCreateRest): + (JSC::FTL::DFG::LowerDFGToB3::allocateArrayWithSize): + (JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize): + (JSC::FTL::DFG::LowerDFGToB3::compileMakeRope): + (JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject): + (JSC::FTL::DFG::LowerDFGToB3::initializeArrayElements): + (JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorageWithSizeImpl): + (JSC::FTL::DFG::LowerDFGToB3::allocateHeapCell): + (JSC::FTL::DFG::LowerDFGToB3::allocateCell): + (JSC::FTL::DFG::LowerDFGToB3::allocateObject): + (JSC::FTL::DFG::LowerDFGToB3::allocatorForSize): + (JSC::FTL::DFG::LowerDFGToB3::allocateVariableSizedObject): + (JSC::FTL::DFG::LowerDFGToB3::allocateJSArray): + (JSC::FTL::DFG::LowerDFGToB3::compileAllocateArrayWithSize): Deleted. + * ftl/FTLOutput.cpp: + (JSC::FTL::Output::constBool): + (JSC::FTL::Output::add): + (JSC::FTL::Output::shl): + (JSC::FTL::Output::aShr): + (JSC::FTL::Output::lShr): + (JSC::FTL::Output::zeroExt): + (JSC::FTL::Output::equal): + (JSC::FTL::Output::notEqual): + (JSC::FTL::Output::above): + (JSC::FTL::Output::aboveOrEqual): + (JSC::FTL::Output::below): + (JSC::FTL::Output::belowOrEqual): + (JSC::FTL::Output::greaterThan): + (JSC::FTL::Output::greaterThanOrEqual): + (JSC::FTL::Output::lessThan): + (JSC::FTL::Output::lessThanOrEqual): + (JSC::FTL::Output::select): + (JSC::FTL::Output::appendSuccessor): + (JSC::FTL::Output::addIncomingToPhi): + * ftl/FTLOutput.h: + * ftl/FTLValueFromBlock.h: + (JSC::FTL::ValueFromBlock::operator bool): + (JSC::FTL::ValueFromBlock::ValueFromBlock): Deleted. + * ftl/FTLWeightedTarget.h: + (JSC::FTL::WeightedTarget::frequentedBlock): + * heap/CellContainer.h: Added. + (JSC::CellContainer::CellContainer): + (JSC::CellContainer::operator bool): + (JSC::CellContainer::isMarkedBlock): + (JSC::CellContainer::isLargeAllocation): + (JSC::CellContainer::markedBlock): + (JSC::CellContainer::largeAllocation): + * heap/CellContainerInlines.h: Added. + (JSC::CellContainer::isMarked): + (JSC::CellContainer::isMarkedOrNewlyAllocated): + (JSC::CellContainer::noteMarked): + (JSC::CellContainer::cellSize): + (JSC::CellContainer::weakSet): + (JSC::CellContainer::flipIfNecessary): + * heap/ConservativeRoots.cpp: + (JSC::ConservativeRoots::ConservativeRoots): + (JSC::ConservativeRoots::~ConservativeRoots): + (JSC::ConservativeRoots::grow): + (JSC::ConservativeRoots::genericAddPointer): + (JSC::ConservativeRoots::genericAddSpan): + * heap/ConservativeRoots.h: + (JSC::ConservativeRoots::roots): + * heap/CopyToken.h: + * heap/FreeList.cpp: Added. + (JSC::FreeList::dump): + * heap/FreeList.h: Added. + (JSC::FreeList::FreeList): + (JSC::FreeList::list): + (JSC::FreeList::bump): + (JSC::FreeList::operator==): + (JSC::FreeList::operator!=): + (JSC::FreeList::operator bool): + (JSC::FreeList::allocationWillFail): + (JSC::FreeList::allocationWillSucceed): + * heap/GCTypeMap.h: Added. + (JSC::GCTypeMap::operator[]): + * heap/Heap.cpp: + (JSC::Heap::Heap): + (JSC::Heap::lastChanceToFinalize): + (JSC::Heap::finalizeUnconditionalFinalizers): + (JSC::Heap::markRoots): + (JSC::Heap::copyBackingStores): + (JSC::Heap::gatherStackRoots): + (JSC::Heap::gatherJSStackRoots): + (JSC::Heap::gatherScratchBufferRoots): + (JSC::Heap::clearLivenessData): + (JSC::Heap::visitSmallStrings): + (JSC::Heap::visitConservativeRoots): + (JSC::Heap::removeDeadCompilerWorklistEntries): + (JSC::Heap::gatherExtraHeapSnapshotData): + (JSC::Heap::removeDeadHeapSnapshotNodes): + (JSC::Heap::visitProtectedObjects): + (JSC::Heap::visitArgumentBuffers): + (JSC::Heap::visitException): + (JSC::Heap::visitStrongHandles): + (JSC::Heap::visitHandleStack): + (JSC::Heap::visitSamplingProfiler): + (JSC::Heap::traceCodeBlocksAndJITStubRoutines): + (JSC::Heap::converge): + (JSC::Heap::visitWeakHandles): + (JSC::Heap::updateObjectCounts): + (JSC::Heap::clearUnmarkedExecutables): + (JSC::Heap::deleteUnmarkedCompiledCode): + (JSC::Heap::collectAllGarbage): + (JSC::Heap::collect): + (JSC::Heap::collectWithoutAnySweep): + (JSC::Heap::collectImpl): + (JSC::Heap::suspendCompilerThreads): + (JSC::Heap::willStartCollection): + (JSC::Heap::flushOldStructureIDTables): + (JSC::Heap::flushWriteBarrierBuffer): + (JSC::Heap::stopAllocation): + (JSC::Heap::prepareForMarking): + (JSC::Heap::reapWeakHandles): + (JSC::Heap::pruneStaleEntriesFromWeakGCMaps): + (JSC::Heap::sweepArrayBuffers): + (JSC::MarkedBlockSnapshotFunctor::MarkedBlockSnapshotFunctor): + (JSC::MarkedBlockSnapshotFunctor::operator()): + (JSC::Heap::snapshotMarkedSpace): + (JSC::Heap::deleteSourceProviderCaches): + (JSC::Heap::notifyIncrementalSweeper): + (JSC::Heap::writeBarrierCurrentlyExecutingCodeBlocks): + (JSC::Heap::resetAllocators): + (JSC::Heap::updateAllocationLimits): + (JSC::Heap::didFinishCollection): + (JSC::Heap::resumeCompilerThreads): + (JSC::Zombify::visit): + (JSC::Heap::forEachCodeBlockImpl): + * heap/Heap.h: + (JSC::Heap::allocatorForObjectWithoutDestructor): + (JSC::Heap::allocatorForObjectWithDestructor): + (JSC::Heap::allocatorForAuxiliaryData): + (JSC::Heap::jitStubRoutines): + (JSC::Heap::codeBlockSet): + (JSC::Heap::storageAllocator): Deleted. + * heap/HeapCell.h: + (JSC::HeapCell::isZapped): Deleted. + * heap/HeapCellInlines.h: Added. + (JSC::HeapCell::isLargeAllocation): + (JSC::HeapCell::cellContainer): + (JSC::HeapCell::markedBlock): + (JSC::HeapCell::largeAllocation): + (JSC::HeapCell::heap): + (JSC::HeapCell::vm): + (JSC::HeapCell::cellSize): + (JSC::HeapCell::allocatorAttributes): + (JSC::HeapCell::destructionMode): + (JSC::HeapCell::cellKind): + * heap/HeapInlines.h: + (JSC::Heap::heap): + (JSC::Heap::isLive): + (JSC::Heap::isMarked): + (JSC::Heap::testAndSetMarked): + (JSC::Heap::setMarked): + (JSC::Heap::cellSize): + (JSC::Heap::forEachCodeBlock): + (JSC::Heap::allocateObjectOfType): + (JSC::Heap::subspaceForObjectOfType): + (JSC::Heap::allocatorForObjectOfType): + (JSC::Heap::allocateAuxiliary): + (JSC::Heap::tryAllocateAuxiliary): + (JSC::Heap::tryReallocateAuxiliary): + (JSC::Heap::isPointerGCObject): Deleted. + (JSC::Heap::isValueGCObject): Deleted. + * heap/HeapOperation.cpp: Added. + (WTF::printInternal): + * heap/HeapOperation.h: + * heap/HeapUtil.h: Added. + (JSC::HeapUtil::findGCObjectPointersForMarking): + (JSC::HeapUtil::isPointerGCObjectJSCell): + (JSC::HeapUtil::isValueGCObject): + * heap/IncrementalSweeper.cpp: + (JSC::IncrementalSweeper::sweepNextBlock): + * heap/IncrementalSweeper.h: + * heap/LargeAllocation.cpp: Added. + (JSC::LargeAllocation::tryCreate): + (JSC::LargeAllocation::LargeAllocation): + (JSC::LargeAllocation::lastChanceToFinalize): + (JSC::LargeAllocation::shrink): + (JSC::LargeAllocation::visitWeakSet): + (JSC::LargeAllocation::reapWeakSet): + (JSC::LargeAllocation::flip): + (JSC::LargeAllocation::isEmpty): + (JSC::LargeAllocation::sweep): + (JSC::LargeAllocation::destroy): + (JSC::LargeAllocation::dump): + * heap/LargeAllocation.h: Added. + (JSC::LargeAllocation::fromCell): + (JSC::LargeAllocation::cell): + (JSC::LargeAllocation::isLargeAllocation): + (JSC::LargeAllocation::heap): + (JSC::LargeAllocation::vm): + (JSC::LargeAllocation::weakSet): + (JSC::LargeAllocation::clearNewlyAllocated): + (JSC::LargeAllocation::isNewlyAllocated): + (JSC::LargeAllocation::isMarked): + (JSC::LargeAllocation::isMarkedOrNewlyAllocated): + (JSC::LargeAllocation::isLive): + (JSC::LargeAllocation::hasValidCell): + (JSC::LargeAllocation::cellSize): + (JSC::LargeAllocation::aboveLowerBound): + (JSC::LargeAllocation::belowUpperBound): + (JSC::LargeAllocation::contains): + (JSC::LargeAllocation::attributes): + (JSC::LargeAllocation::flipIfNecessary): + (JSC::LargeAllocation::flipIfNecessaryConcurrently): + (JSC::LargeAllocation::testAndSetMarked): + (JSC::LargeAllocation::setMarked): + (JSC::LargeAllocation::clearMarked): + (JSC::LargeAllocation::noteMarked): + (JSC::LargeAllocation::headerSize): + * heap/MarkedAllocator.cpp: + (JSC::MarkedAllocator::MarkedAllocator): + (JSC::MarkedAllocator::isPagedOut): + (JSC::MarkedAllocator::retire): + (JSC::MarkedAllocator::filterNextBlock): + (JSC::MarkedAllocator::setNextBlockToSweep): + (JSC::MarkedAllocator::tryAllocateWithoutCollectingImpl): + (JSC::MarkedAllocator::tryAllocateWithoutCollecting): + (JSC::MarkedAllocator::allocateSlowCase): + (JSC::MarkedAllocator::tryAllocateSlowCase): + (JSC::MarkedAllocator::allocateSlowCaseImpl): + (JSC::blockHeaderSize): + (JSC::MarkedAllocator::blockSizeForBytes): + (JSC::MarkedAllocator::tryAllocateBlock): + (JSC::MarkedAllocator::addBlock): + (JSC::MarkedAllocator::removeBlock): + (JSC::MarkedAllocator::stopAllocating): + (JSC::MarkedAllocator::reset): + (JSC::MarkedAllocator::lastChanceToFinalize): + (JSC::MarkedAllocator::setFreeList): + (JSC::isListPagedOut): Deleted. + (JSC::MarkedAllocator::tryAllocateHelper): Deleted. + (JSC::MarkedAllocator::tryPopFreeList): Deleted. + (JSC::MarkedAllocator::tryAllocate): Deleted. + (JSC::MarkedAllocator::allocateBlock): Deleted. + * heap/MarkedAllocator.h: + (JSC::MarkedAllocator::takeLastActiveBlock): + (JSC::MarkedAllocator::offsetOfFreeList): + (JSC::MarkedAllocator::offsetOfCellSize): + (JSC::MarkedAllocator::tryAllocate): + (JSC::MarkedAllocator::allocate): + (JSC::MarkedAllocator::forEachBlock): + (JSC::MarkedAllocator::offsetOfFreeListHead): Deleted. + (JSC::MarkedAllocator::MarkedAllocator): Deleted. + (JSC::MarkedAllocator::init): Deleted. + (JSC::MarkedAllocator::stopAllocating): Deleted. + * heap/MarkedBlock.cpp: + (JSC::MarkedBlock::tryCreate): + (JSC::MarkedBlock::Handle::Handle): + (JSC::MarkedBlock::Handle::~Handle): + (JSC::MarkedBlock::MarkedBlock): + (JSC::MarkedBlock::Handle::specializedSweep): + (JSC::MarkedBlock::Handle::sweep): + (JSC::MarkedBlock::Handle::sweepHelperSelectScribbleMode): + (JSC::MarkedBlock::Handle::sweepHelperSelectStateAndSweepMode): + (JSC::MarkedBlock::Handle::unsweepWithNoNewlyAllocated): + (JSC::SetNewlyAllocatedFunctor::SetNewlyAllocatedFunctor): + (JSC::SetNewlyAllocatedFunctor::operator()): + (JSC::MarkedBlock::Handle::stopAllocating): + (JSC::MarkedBlock::Handle::lastChanceToFinalize): + (JSC::MarkedBlock::Handle::resumeAllocating): + (JSC::MarkedBlock::Handle::zap): + (JSC::MarkedBlock::Handle::forEachFreeCell): + (JSC::MarkedBlock::flipIfNecessary): + (JSC::MarkedBlock::Handle::flipIfNecessary): + (JSC::MarkedBlock::flipIfNecessarySlow): + (JSC::MarkedBlock::flipIfNecessaryConcurrentlySlow): + (JSC::MarkedBlock::clearMarks): + (JSC::MarkedBlock::assertFlipped): + (JSC::MarkedBlock::needsFlip): + (JSC::MarkedBlock::Handle::needsFlip): + (JSC::MarkedBlock::Handle::willRemoveBlock): + (JSC::MarkedBlock::Handle::didConsumeFreeList): + (JSC::MarkedBlock::markCount): + (JSC::MarkedBlock::Handle::isEmpty): + (JSC::MarkedBlock::clearHasAnyMarked): + (JSC::MarkedBlock::noteMarkedSlow): + (WTF::printInternal): + (JSC::MarkedBlock::create): Deleted. + (JSC::MarkedBlock::destroy): Deleted. + (JSC::MarkedBlock::callDestructor): Deleted. + (JSC::MarkedBlock::specializedSweep): Deleted. + (JSC::MarkedBlock::sweep): Deleted. + (JSC::MarkedBlock::sweepHelper): Deleted. + (JSC::MarkedBlock::stopAllocating): Deleted. + (JSC::MarkedBlock::clearMarksWithCollectionType): Deleted. + (JSC::MarkedBlock::lastChanceToFinalize): Deleted. + (JSC::MarkedBlock::resumeAllocating): Deleted. + (JSC::MarkedBlock::didRetireBlock): Deleted. + * heap/MarkedBlock.h: + (JSC::MarkedBlock::VoidFunctor::returnValue): + (JSC::MarkedBlock::CountFunctor::CountFunctor): + (JSC::MarkedBlock::CountFunctor::count): + (JSC::MarkedBlock::CountFunctor::returnValue): + (JSC::MarkedBlock::Handle::hasAnyNewlyAllocated): + (JSC::MarkedBlock::Handle::isOnBlocksToSweep): + (JSC::MarkedBlock::Handle::setIsOnBlocksToSweep): + (JSC::MarkedBlock::Handle::state): + (JSC::MarkedBlock::needsDestruction): + (JSC::MarkedBlock::handle): + (JSC::MarkedBlock::Handle::block): + (JSC::MarkedBlock::firstAtom): + (JSC::MarkedBlock::atoms): + (JSC::MarkedBlock::isAtomAligned): + (JSC::MarkedBlock::Handle::cellAlign): + (JSC::MarkedBlock::blockFor): + (JSC::MarkedBlock::Handle::allocator): + (JSC::MarkedBlock::Handle::heap): + (JSC::MarkedBlock::Handle::vm): + (JSC::MarkedBlock::vm): + (JSC::MarkedBlock::Handle::weakSet): + (JSC::MarkedBlock::weakSet): + (JSC::MarkedBlock::Handle::shrink): + (JSC::MarkedBlock::Handle::visitWeakSet): + (JSC::MarkedBlock::Handle::reapWeakSet): + (JSC::MarkedBlock::Handle::cellSize): + (JSC::MarkedBlock::cellSize): + (JSC::MarkedBlock::Handle::attributes): + (JSC::MarkedBlock::attributes): + (JSC::MarkedBlock::Handle::needsDestruction): + (JSC::MarkedBlock::Handle::destruction): + (JSC::MarkedBlock::Handle::cellKind): + (JSC::MarkedBlock::Handle::markCount): + (JSC::MarkedBlock::Handle::size): + (JSC::MarkedBlock::atomNumber): + (JSC::MarkedBlock::flipIfNecessary): + (JSC::MarkedBlock::flipIfNecessaryConcurrently): + (JSC::MarkedBlock::Handle::flipIfNecessary): + (JSC::MarkedBlock::Handle::flipIfNecessaryConcurrently): + (JSC::MarkedBlock::Handle::flipForEdenCollection): + (JSC::MarkedBlock::assertFlipped): + (JSC::MarkedBlock::Handle::assertFlipped): + (JSC::MarkedBlock::isMarked): + (JSC::MarkedBlock::testAndSetMarked): + (JSC::MarkedBlock::Handle::isNewlyAllocated): + (JSC::MarkedBlock::Handle::setNewlyAllocated): + (JSC::MarkedBlock::Handle::clearNewlyAllocated): + (JSC::MarkedBlock::Handle::isMarkedOrNewlyAllocated): + (JSC::MarkedBlock::isMarkedOrNewlyAllocated): + (JSC::MarkedBlock::Handle::isLive): + (JSC::MarkedBlock::isAtom): + (JSC::MarkedBlock::Handle::isLiveCell): + (JSC::MarkedBlock::Handle::forEachCell): + (JSC::MarkedBlock::Handle::forEachLiveCell): + (JSC::MarkedBlock::Handle::forEachDeadCell): + (JSC::MarkedBlock::Handle::needsSweeping): + (JSC::MarkedBlock::Handle::isAllocated): + (JSC::MarkedBlock::Handle::isMarked): + (JSC::MarkedBlock::Handle::isFreeListed): + (JSC::MarkedBlock::hasAnyMarked): + (JSC::MarkedBlock::noteMarked): + (WTF::MarkedBlockHash::hash): + (JSC::MarkedBlock::FreeList::FreeList): Deleted. + (JSC::MarkedBlock::allocator): Deleted. + (JSC::MarkedBlock::heap): Deleted. + (JSC::MarkedBlock::shrink): Deleted. + (JSC::MarkedBlock::visitWeakSet): Deleted. + (JSC::MarkedBlock::reapWeakSet): Deleted. + (JSC::MarkedBlock::willRemoveBlock): Deleted. + (JSC::MarkedBlock::didConsumeFreeList): Deleted. + (JSC::MarkedBlock::markCount): Deleted. + (JSC::MarkedBlock::isEmpty): Deleted. + (JSC::MarkedBlock::destruction): Deleted. + (JSC::MarkedBlock::cellKind): Deleted. + (JSC::MarkedBlock::size): Deleted. + (JSC::MarkedBlock::capacity): Deleted. + (JSC::MarkedBlock::setMarked): Deleted. + (JSC::MarkedBlock::clearMarked): Deleted. + (JSC::MarkedBlock::isNewlyAllocated): Deleted. + (JSC::MarkedBlock::setNewlyAllocated): Deleted. + (JSC::MarkedBlock::clearNewlyAllocated): Deleted. + (JSC::MarkedBlock::isLive): Deleted. + (JSC::MarkedBlock::isLiveCell): Deleted. + (JSC::MarkedBlock::forEachCell): Deleted. + (JSC::MarkedBlock::forEachLiveCell): Deleted. + (JSC::MarkedBlock::forEachDeadCell): Deleted. + (JSC::MarkedBlock::needsSweeping): Deleted. + (JSC::MarkedBlock::isAllocated): Deleted. + (JSC::MarkedBlock::isMarkedOrRetired): Deleted. + * heap/MarkedSpace.cpp: + (JSC::MarkedSpace::initializeSizeClassForStepSize): + (JSC::MarkedSpace::MarkedSpace): + (JSC::MarkedSpace::~MarkedSpace): + (JSC::MarkedSpace::lastChanceToFinalize): + (JSC::MarkedSpace::allocate): + (JSC::MarkedSpace::tryAllocate): + (JSC::MarkedSpace::allocateLarge): + (JSC::MarkedSpace::tryAllocateLarge): + (JSC::MarkedSpace::sweep): + (JSC::MarkedSpace::sweepLargeAllocations): + (JSC::MarkedSpace::zombifySweep): + (JSC::MarkedSpace::resetAllocators): + (JSC::MarkedSpace::visitWeakSets): + (JSC::MarkedSpace::reapWeakSets): + (JSC::MarkedSpace::stopAllocating): + (JSC::MarkedSpace::prepareForMarking): + (JSC::MarkedSpace::resumeAllocating): + (JSC::MarkedSpace::isPagedOut): + (JSC::MarkedSpace::freeBlock): + (JSC::MarkedSpace::freeOrShrinkBlock): + (JSC::MarkedSpace::shrink): + (JSC::MarkedSpace::clearNewlyAllocated): + (JSC::VerifyMarked::operator()): + (JSC::MarkedSpace::flip): + (JSC::MarkedSpace::objectCount): + (JSC::MarkedSpace::size): + (JSC::MarkedSpace::capacity): + (JSC::MarkedSpace::addActiveWeakSet): + (JSC::MarkedSpace::didAddBlock): + (JSC::MarkedSpace::didAllocateInBlock): + (JSC::MarkedSpace::forEachAllocator): Deleted. + (JSC::VerifyMarkedOrRetired::operator()): Deleted. + (JSC::MarkedSpace::clearMarks): Deleted. + * heap/MarkedSpace.h: + (JSC::MarkedSpace::sizeClassToIndex): + (JSC::MarkedSpace::indexToSizeClass): + (JSC::MarkedSpace::version): + (JSC::MarkedSpace::blocksWithNewObjects): + (JSC::MarkedSpace::largeAllocations): + (JSC::MarkedSpace::largeAllocationsNurseryOffset): + (JSC::MarkedSpace::largeAllocationsOffsetForThisCollection): + (JSC::MarkedSpace::largeAllocationsForThisCollectionBegin): + (JSC::MarkedSpace::largeAllocationsForThisCollectionEnd): + (JSC::MarkedSpace::largeAllocationsForThisCollectionSize): + (JSC::MarkedSpace::forEachLiveCell): + (JSC::MarkedSpace::forEachDeadCell): + (JSC::MarkedSpace::allocatorFor): + (JSC::MarkedSpace::destructorAllocatorFor): + (JSC::MarkedSpace::auxiliaryAllocatorFor): + (JSC::MarkedSpace::allocateWithoutDestructor): + (JSC::MarkedSpace::allocateWithDestructor): + (JSC::MarkedSpace::allocateAuxiliary): + (JSC::MarkedSpace::tryAllocateAuxiliary): + (JSC::MarkedSpace::forEachBlock): + (JSC::MarkedSpace::forEachAllocator): + (JSC::MarkedSpace::optimalSizeFor): + (JSC::MarkedSpace::didAddBlock): Deleted. + (JSC::MarkedSpace::didAllocateInBlock): Deleted. + (JSC::MarkedSpace::objectCount): Deleted. + (JSC::MarkedSpace::size): Deleted. + (JSC::MarkedSpace::capacity): Deleted. + * heap/SlotVisitor.cpp: + (JSC::SlotVisitor::SlotVisitor): + (JSC::SlotVisitor::didStartMarking): + (JSC::SlotVisitor::reset): + (JSC::SlotVisitor::append): + (JSC::SlotVisitor::appendJSCellOrAuxiliary): + (JSC::SlotVisitor::setMarkedAndAppendToMarkStack): + (JSC::SlotVisitor::appendToMarkStack): + (JSC::SlotVisitor::markAuxiliary): + (JSC::SlotVisitor::noteLiveAuxiliaryCell): + (JSC::SlotVisitor::visitChildren): + * heap/SlotVisitor.h: + * heap/WeakBlock.cpp: + (JSC::WeakBlock::create): + (JSC::WeakBlock::WeakBlock): + (JSC::WeakBlock::visit): + (JSC::WeakBlock::reap): + * heap/WeakBlock.h: + (JSC::WeakBlock::disconnectContainer): + (JSC::WeakBlock::disconnectMarkedBlock): Deleted. + * heap/WeakSet.cpp: + (JSC::WeakSet::~WeakSet): + (JSC::WeakSet::sweep): + (JSC::WeakSet::shrink): + (JSC::WeakSet::addAllocator): + * heap/WeakSet.h: + (JSC::WeakSet::container): + (JSC::WeakSet::setContainer): + (JSC::WeakSet::WeakSet): + (JSC::WeakSet::visit): + (JSC::WeakSet::shrink): Deleted. + * heap/WeakSetInlines.h: + (JSC::WeakSet::allocate): + * inspector/InjectedScriptManager.cpp: + * inspector/JSGlobalObjectInspectorController.cpp: + * inspector/JSJavaScriptCallFrame.cpp: + * inspector/ScriptDebugServer.cpp: + * inspector/agents/InspectorDebuggerAgent.cpp: + * interpreter/CachedCall.h: + (JSC::CachedCall::CachedCall): + * interpreter/Interpreter.cpp: + (JSC::loadVarargs): + (JSC::StackFrame::sourceID): Deleted. + (JSC::StackFrame::sourceURL): Deleted. + (JSC::StackFrame::functionName): Deleted. + (JSC::StackFrame::computeLineAndColumn): Deleted. + (JSC::StackFrame::toString): Deleted. + * interpreter/Interpreter.h: + (JSC::StackFrame::isNative): Deleted. + * jit/AssemblyHelpers.h: + (JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator): + (JSC::AssemblyHelpers::emitAllocate): + (JSC::AssemblyHelpers::emitAllocateJSCell): + (JSC::AssemblyHelpers::emitAllocateJSObject): + (JSC::AssemblyHelpers::emitAllocateJSObjectWithKnownSize): + (JSC::AssemblyHelpers::emitAllocateVariableSized): + * jit/GCAwareJITStubRoutine.cpp: + (JSC::GCAwareJITStubRoutine::GCAwareJITStubRoutine): + * jit/JIT.cpp: + (JSC::JIT::compileCTINativeCall): + (JSC::JIT::link): + * jit/JIT.h: + (JSC::JIT::compileCTINativeCall): Deleted. + * jit/JITExceptions.cpp: + (JSC::genericUnwind): + * jit/JITExceptions.h: + * jit/JITOpcodes.cpp: + (JSC::JIT::emit_op_new_object): + (JSC::JIT::emitSlow_op_new_object): + (JSC::JIT::emit_op_create_this): + (JSC::JIT::emitSlow_op_create_this): + * jit/JITOpcodes32_64.cpp: + (JSC::JIT::emit_op_new_object): + (JSC::JIT::emitSlow_op_new_object): + (JSC::JIT::emit_op_create_this): + (JSC::JIT::emitSlow_op_create_this): + * jit/JITOperations.cpp: + * jit/JITOperations.h: + * jit/JITPropertyAccess.cpp: + (JSC::JIT::emitWriteBarrier): + * jit/JITThunks.cpp: + * jit/JITThunks.h: + * jsc.cpp: + (functionDescribeArray): + (main): + * llint/LLIntData.cpp: + (JSC::LLInt::Data::performAssertions): + * llint/LLIntExceptions.cpp: + * llint/LLIntThunks.cpp: + * llint/LLIntThunks.h: + * llint/LowLevelInterpreter.asm: + * llint/LowLevelInterpreter.cpp: + * llint/LowLevelInterpreter32_64.asm: + * llint/LowLevelInterpreter64.asm: + * parser/ModuleAnalyzer.cpp: + * parser/NodeConstructors.h: + * parser/Nodes.h: + * profiler/ProfilerBytecode.cpp: + * profiler/ProfilerBytecode.h: + * profiler/ProfilerBytecodeSequence.cpp: + * runtime/ArrayConventions.h: + (JSC::indexingHeaderForArrayStorage): + (JSC::baseIndexingHeaderForArrayStorage): + (JSC::indexingHeaderForArray): Deleted. + (JSC::baseIndexingHeaderForArray): Deleted. + * runtime/ArrayPrototype.cpp: + (JSC::arrayProtoFuncSplice): + (JSC::concatAppendOne): + (JSC::arrayProtoPrivateFuncConcatMemcpy): + * runtime/ArrayStorage.h: + (JSC::ArrayStorage::vectorLength): + (JSC::ArrayStorage::totalSizeFor): + (JSC::ArrayStorage::totalSize): + (JSC::ArrayStorage::availableVectorLength): + (JSC::ArrayStorage::optimalVectorLength): + (JSC::ArrayStorage::sizeFor): Deleted. + * runtime/AuxiliaryBarrier.h: Added. + (JSC::AuxiliaryBarrier::AuxiliaryBarrier): + (JSC::AuxiliaryBarrier::clear): + (JSC::AuxiliaryBarrier::get): + (JSC::AuxiliaryBarrier::slot): + (JSC::AuxiliaryBarrier::operator bool): + (JSC::AuxiliaryBarrier::setWithoutBarrier): + * runtime/AuxiliaryBarrierInlines.h: Added. + (JSC::AuxiliaryBarrier::AuxiliaryBarrier): + (JSC::AuxiliaryBarrier::set): + * runtime/Butterfly.h: + * runtime/ButterflyInlines.h: + (JSC::Butterfly::availableContiguousVectorLength): + (JSC::Butterfly::optimalContiguousVectorLength): + (JSC::Butterfly::createUninitialized): + (JSC::Butterfly::growArrayRight): + * runtime/ClonedArguments.cpp: + (JSC::ClonedArguments::createEmpty): + * runtime/CommonSlowPathsExceptions.cpp: + * runtime/CommonSlowPathsExceptions.h: + * runtime/DataView.cpp: + * runtime/DirectArguments.h: + * runtime/ECMAScriptSpecInternalFunctions.cpp: + * runtime/Error.cpp: + * runtime/Error.h: + * runtime/ErrorInstance.cpp: + * runtime/ErrorInstance.h: + * runtime/Exception.cpp: + * runtime/Exception.h: + * runtime/GeneratorFrame.cpp: + * runtime/GeneratorPrototype.cpp: + * runtime/InternalFunction.cpp: + (JSC::InternalFunction::InternalFunction): + * runtime/IntlCollator.cpp: + * runtime/IntlCollatorConstructor.cpp: + * runtime/IntlCollatorPrototype.cpp: + * runtime/IntlDateTimeFormat.cpp: + * runtime/IntlDateTimeFormatConstructor.cpp: + * runtime/IntlDateTimeFormatPrototype.cpp: + * runtime/IntlNumberFormat.cpp: + * runtime/IntlNumberFormatConstructor.cpp: + * runtime/IntlNumberFormatPrototype.cpp: + * runtime/IntlObject.cpp: + * runtime/IteratorPrototype.cpp: + * runtime/JSArray.cpp: + (JSC::JSArray::tryCreateUninitialized): + (JSC::JSArray::setLengthWritable): + (JSC::JSArray::unshiftCountSlowCase): + (JSC::JSArray::setLengthWithArrayStorage): + (JSC::JSArray::appendMemcpy): + (JSC::JSArray::setLength): + (JSC::JSArray::pop): + (JSC::JSArray::push): + (JSC::JSArray::fastSlice): + (JSC::JSArray::shiftCountWithArrayStorage): + (JSC::JSArray::shiftCountWithAnyIndexingType): + (JSC::JSArray::unshiftCountWithArrayStorage): + (JSC::JSArray::fillArgList): + (JSC::JSArray::copyToArguments): + * runtime/JSArray.h: + (JSC::createContiguousArrayButterfly): + (JSC::createArrayButterfly): + (JSC::JSArray::create): + (JSC::JSArray::tryCreateUninitialized): Deleted. + * runtime/JSArrayBufferView.h: + * runtime/JSCInlines.h: + * runtime/JSCJSValue.cpp: + (JSC::JSValue::dumpInContextAssumingStructure): + * runtime/JSCallee.cpp: + (JSC::JSCallee::JSCallee): + * runtime/JSCell.cpp: + (JSC::JSCell::estimatedSize): + * runtime/JSCell.h: + (JSC::JSCell::cellStateOffset): Deleted. + * runtime/JSCellInlines.h: + (JSC::ExecState::vm): + (JSC::JSCell::classInfo): + (JSC::JSCell::callDestructor): + (JSC::JSCell::vm): Deleted. + * runtime/JSFunction.cpp: + (JSC::JSFunction::create): + (JSC::JSFunction::allocateAndInitializeRareData): + (JSC::JSFunction::initializeRareData): + (JSC::JSFunction::getOwnPropertySlot): + (JSC::JSFunction::put): + (JSC::JSFunction::deleteProperty): + (JSC::JSFunction::defineOwnProperty): + (JSC::JSFunction::setFunctionName): + (JSC::JSFunction::reifyLength): + (JSC::JSFunction::reifyName): + (JSC::JSFunction::reifyLazyPropertyIfNeeded): + (JSC::JSFunction::reifyBoundNameIfNeeded): + * runtime/JSFunction.h: + * runtime/JSFunctionInlines.h: + (JSC::JSFunction::createWithInvalidatedReallocationWatchpoint): + (JSC::JSFunction::JSFunction): + * runtime/JSGenericTypedArrayViewInlines.h: + (JSC::JSGenericTypedArrayView::slowDownAndWasteMemory): + * runtime/JSInternalPromise.cpp: + * runtime/JSInternalPromiseConstructor.cpp: + * runtime/JSInternalPromiseDeferred.cpp: + * runtime/JSInternalPromisePrototype.cpp: + * runtime/JSJob.cpp: + * runtime/JSMapIterator.cpp: + * runtime/JSModuleNamespaceObject.cpp: + * runtime/JSModuleRecord.cpp: + * runtime/JSObject.cpp: + (JSC::JSObject::visitButterfly): + (JSC::JSObject::notifyPresenceOfIndexedAccessors): + (JSC::JSObject::createInitialIndexedStorage): + (JSC::JSObject::createInitialUndecided): + (JSC::JSObject::createInitialInt32): + (JSC::JSObject::createInitialDouble): + (JSC::JSObject::createInitialContiguous): + (JSC::JSObject::createArrayStorage): + (JSC::JSObject::createInitialArrayStorage): + (JSC::JSObject::convertUndecidedToInt32): + (JSC::JSObject::convertUndecidedToContiguous): + (JSC::JSObject::convertUndecidedToArrayStorage): + (JSC::JSObject::convertInt32ToDouble): + (JSC::JSObject::convertInt32ToArrayStorage): + (JSC::JSObject::convertDoubleToArrayStorage): + (JSC::JSObject::convertContiguousToArrayStorage): + (JSC::JSObject::putByIndexBeyondVectorLength): + (JSC::JSObject::putDirectIndexBeyondVectorLength): + (JSC::JSObject::getNewVectorLength): + (JSC::JSObject::increaseVectorLength): + (JSC::JSObject::ensureLengthSlow): + (JSC::JSObject::growOutOfLineStorage): + (JSC::JSObject::copyButterfly): Deleted. + (JSC::JSObject::copyBackingStore): Deleted. + * runtime/JSObject.h: + (JSC::JSObject::globalObject): + (JSC::JSObject::putDirectInternal): + (JSC::JSObject::setStructureAndReallocateStorageIfNecessary): Deleted. + * runtime/JSObjectInlines.h: + * runtime/JSPromise.cpp: + * runtime/JSPromiseConstructor.cpp: + * runtime/JSPromiseDeferred.cpp: + * runtime/JSPromisePrototype.cpp: + * runtime/JSPropertyNameIterator.cpp: + * runtime/JSScope.cpp: + (JSC::JSScope::resolve): + * runtime/JSScope.h: + (JSC::JSScope::globalObject): + (JSC::JSScope::vm): Deleted. + * runtime/JSSetIterator.cpp: + * runtime/JSStringIterator.cpp: + * runtime/JSTemplateRegistryKey.cpp: + * runtime/JSTypedArrayViewConstructor.cpp: + * runtime/JSTypedArrayViewPrototype.cpp: + * runtime/JSWeakMap.cpp: + * runtime/JSWeakSet.cpp: + * runtime/MapConstructor.cpp: + * runtime/MapIteratorPrototype.cpp: + * runtime/MapPrototype.cpp: + * runtime/NativeErrorConstructor.cpp: + * runtime/NativeStdFunctionCell.cpp: + * runtime/Operations.h: + (JSC::scribbleFreeCells): + (JSC::scribble): + * runtime/Options.h: + * runtime/PropertyTable.cpp: + * runtime/ProxyConstructor.cpp: + * runtime/ProxyObject.cpp: + * runtime/ProxyRevoke.cpp: + * runtime/RegExp.cpp: + (JSC::RegExp::match): + (JSC::RegExp::matchConcurrently): + (JSC::RegExp::matchCompareWithInterpreter): + * runtime/RegExp.h: + * runtime/RegExpConstructor.h: + * runtime/RegExpInlines.h: + (JSC::RegExp::matchInline): + * runtime/RegExpMatchesArray.h: + (JSC::tryCreateUninitializedRegExpMatchesArray): + (JSC::createRegExpMatchesArray): + * runtime/RegExpPrototype.cpp: + (JSC::genericSplit): + * runtime/RuntimeType.cpp: + * runtime/SamplingProfiler.cpp: + (JSC::SamplingProfiler::processUnverifiedStackTraces): + * runtime/SetConstructor.cpp: + * runtime/SetIteratorPrototype.cpp: + * runtime/SetPrototype.cpp: + * runtime/StackFrame.cpp: Added. + (JSC::StackFrame::sourceID): + (JSC::StackFrame::sourceURL): + (JSC::StackFrame::functionName): + (JSC::StackFrame::computeLineAndColumn): + (JSC::StackFrame::toString): + * runtime/StackFrame.h: Added. + (JSC::StackFrame::isNative): + * runtime/StringConstructor.cpp: + * runtime/StringIteratorPrototype.cpp: + * runtime/StructureInlines.h: + (JSC::Structure::propertyTable): + * runtime/TemplateRegistry.cpp: + * runtime/TestRunnerUtils.cpp: + (JSC::finalizeStatsAtEndOfTesting): + * runtime/TestRunnerUtils.h: + * runtime/TypeProfilerLog.cpp: + * runtime/TypeSet.cpp: + * runtime/VM.cpp: + (JSC::VM::VM): + (JSC::VM::ensureStackCapacityForCLoop): + (JSC::VM::isSafeToRecurseSoftCLoop): + * runtime/VM.h: + * runtime/VMEntryScope.h: + * runtime/VMInlines.h: + (JSC::VM::ensureStackCapacityFor): + (JSC::VM::isSafeToRecurseSoft): + * runtime/WeakMapConstructor.cpp: + * runtime/WeakMapData.cpp: + * runtime/WeakMapPrototype.cpp: + * runtime/WeakSetConstructor.cpp: + * runtime/WeakSetPrototype.cpp: + * testRegExp.cpp: + (testOneRegExp): + * tools/JSDollarVM.cpp: + * tools/JSDollarVMPrototype.cpp: + (JSC::JSDollarVMPrototype::isInObjectSpace): + +2018-07-18 Babak Shafiei + + Cherry-pick r233893. rdar://problem/42345044 + + CodeBlock::baselineVersion() should account for executables with purged codeBlocks. + https://bugs.webkit.org/show_bug.cgi?id=187736 + + + Reviewed by Michael Saboff. + + CodeBlock::baselineVersion() currently checks for a null replacement but does not + account for the fact that that the replacement can also be null due to the + executable having being purged of its codeBlocks due to a memory event (see + ExecutableBase::clearCode()). This patch adds code to account for this. + + * bytecode/CodeBlock.cpp: + (JSC::CodeBlock::baselineVersion): + + + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233893 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-07-17 Mark Lam + + CodeBlock::baselineVersion() should account for executables with purged codeBlocks. + https://bugs.webkit.org/show_bug.cgi?id=187736 + + + Reviewed by Michael Saboff. + + CodeBlock::baselineVersion() currently checks for a null replacement but does not + account for the fact that that the replacement can also be null due to the + executable having being purged of its codeBlocks due to a memory event (see + ExecutableBase::clearCode()). This patch adds code to account for this. + + * bytecode/CodeBlock.cpp: + (JSC::CodeBlock::baselineVersion): + +2018-04-24 Keith Miller + + fromCharCode is missing some exception checks + https://bugs.webkit.org/show_bug.cgi?id=184952 + + Reviewed by Saam Barati. + + * stress/fromCharCode-exception-check.js: Added. + (get catch): + +2018-03-28 Robin Morisset + + appendQuotedJSONString stops on arithmetic overflow instead of propagating it upwards + https://bugs.webkit.org/show_bug.cgi?id=183894 + + Reviewed by Saam Barati. + + Use the return value of appendQuotedJSONString to fail more gracefully when given a string that is too large to handle. + + * runtime/JSONObject.cpp: + (JSC::Stringifier::appendStringifiedValue): + +2018-05-08 Jason Marcell + + Cherry-pick r230740. rdar://problem/40050731 + + A put is not an ExistingProperty put when we transition a structure because of an attributes change + https://bugs.webkit.org/show_bug.cgi?id=184706 + + + Reviewed by Saam Barati. + + JSTests: + + * stress/put-by-id-direct-strict-transition.js: Added. + (const.foo): + (j.const.obj.set hello): + * stress/put-by-id-direct-transition.js: Added. + (const.foo): + (j.const.obj.set hello): + * stress/put-getter-setter-by-id-strict-transition.js: Added. + (const.foo): + (j.const.obj.set hello): + * stress/put-getter-setter-by-id-transition.js: Added. + (const.foo): + (j.const.obj.set hello): + + Source/JavaScriptCore: + + When putting a property on a structure and the slot is a different + type, the slot can't be said to have already been existing. + + * runtime/JSObjectInlines.h: + (JSC::JSObject::putDirectInternal): + + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230740 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-04-17 JF Bastien + + A put is not an ExistingProperty put when we transition a structure because of an attributes change + https://bugs.webkit.org/show_bug.cgi?id=184706 + + + Reviewed by Saam Barati. + + When putting a property on a structure and the slot is a different + type, the slot can't be said to have already been existing. + + * runtime/JSObjectInlines.h: + (JSC::JSObject::putDirectInternal): + 2018-04-03 Jason Marcell Cherry-pick r230101. rdar://problem/39155394 diff --git a/webkit/JavaScriptCore/bytecode/CodeBlock.cpp b/webkit/JavaScriptCore/bytecode/CodeBlock.cpp index cefe8e9ea..a3447b02f 100644 --- a/webkit/JavaScriptCore/bytecode/CodeBlock.cpp +++ b/webkit/JavaScriptCore/bytecode/CodeBlock.cpp @@ -2891,16 +2891,26 @@ CodeBlock* CodeBlock::baselineAlternative() CodeBlock* CodeBlock::baselineVersion() { #if ENABLE(JIT) - if (JITCode::isBaselineCode(jitType())) + JITCode::JITType selfJITType = jitType(); + if (JITCode::isBaselineCode(selfJITType)) return this; CodeBlock* result = replacement(); if (!result) { - // This can happen if we're creating the original CodeBlock for an executable. - // Assume that we're the baseline CodeBlock. - RELEASE_ASSERT(jitType() == JITCode::None); - return this; + if (JITCode::isOptimizingJIT(selfJITType)) { + // The replacement can be null if we've had a memory clean up and the executable + // has been purged of its codeBlocks (see ExecutableBase::clearCode()). Regardless, + // the current codeBlock is still live on the stack, and as an optimizing JIT + // codeBlock, it will keep its baselineAlternative() alive for us to fetch below. + result = this; + } else { + // This can happen if we're creating the original CodeBlock for an executable. + // Assume that we're the baseline CodeBlock. + RELEASE_ASSERT(selfJITType == JITCode::None); + return this; + } } result = result->baselineAlternative(); + ASSERT(result); return result; #else return this; diff --git a/webkit/JavaScriptCore/runtime/ArrayPrototype.cpp b/webkit/JavaScriptCore/runtime/ArrayPrototype.cpp index 33b13ebac..122c0c205 100644 --- a/webkit/JavaScriptCore/runtime/ArrayPrototype.cpp +++ b/webkit/JavaScriptCore/runtime/ArrayPrototype.cpp @@ -877,7 +877,7 @@ EncodedJSValue JSC_HOST_CALL arrayProtoFuncSplice(ExecState* exec) if (exec->hadException()) return JSValue::encode(jsUndefined()); } - + setLength(exec, thisObj, length - deleteCount + additionalArgs); return JSValue::encode(result); } @@ -1032,6 +1032,7 @@ static EncodedJSValue concatAppendOne(ExecState* exec, VM& vm, JSArray* first, J unsigned resultSize = checkedResultSize.unsafeGet(); IndexingType type = first->mergeIndexingTypeForCopying(indexingTypeForValue(second) | IsArray); + JSArray* result; if (type == NonArray) { result = constructEmptyArray(exec, nullptr, firstArraySize + 1); @@ -1060,6 +1061,29 @@ static EncodedJSValue concatAppendOne(ExecState* exec, VM& vm, JSArray* first, J } +template +void clearElement(T& element) +{ + element.clear(); +} + +template<> +void clearElement(double& element) +{ + element = PNaN; +} + +template +ALWAYS_INLINE void copyElements(T* buffer, unsigned offset, void* source, unsigned sourceSize, IndexingType sourceType) +{ + if (sourceType != ArrayWithUndecided) { + memcpy(buffer + offset, source, sizeof(JSValue) * sourceSize); + return; + } + + for (unsigned i = sourceSize; i--;) + clearElement(buffer[i + offset]); +}; EncodedJSValue JSC_HOST_CALL arrayProtoPrivateFuncConcatMemcpy(ExecState* exec) { @@ -1067,7 +1091,7 @@ EncodedJSValue JSC_HOST_CALL arrayProtoPrivateFuncConcatMemcpy(ExecState* exec) VM& vm = exec->vm(); JSArray* firstArray = jsCast(exec->uncheckedArgument(0)); - + // This code assumes that neither array has set Symbol.isConcatSpreadable. If the first array // has indexed accessors then one of those accessors might change the value of Symbol.isConcatSpreadable // on the second argument. @@ -1083,7 +1107,7 @@ EncodedJSValue JSC_HOST_CALL arrayProtoPrivateFuncConcatMemcpy(ExecState* exec) return concatAppendOne(exec, vm, firstArray, second); JSArray* secondArray = jsCast(second); - + Butterfly* firstButterfly = firstArray->butterfly(); Butterfly* secondButterfly = secondArray->butterfly(); @@ -1099,7 +1123,9 @@ EncodedJSValue JSC_HOST_CALL arrayProtoPrivateFuncConcatMemcpy(ExecState* exec) } unsigned resultSize = checkedResultSize.unsafeGet(); - IndexingType type = firstArray->mergeIndexingTypeForCopying(secondArray->indexingType()); + IndexingType firstType = firstArray->indexingType(); + IndexingType secondType = secondArray->indexingType(); + IndexingType type = firstArray->mergeIndexingTypeForCopying(secondType); if (type == NonArray || !firstArray->canFastCopy(vm, secondArray) || resultSize >= MIN_SPARSE_ARRAY_INDEX) { JSArray* result = constructEmptyArray(exec, nullptr, resultSize); if (vm.exception()) @@ -1128,12 +1154,13 @@ EncodedJSValue JSC_HOST_CALL arrayProtoPrivateFuncConcatMemcpy(ExecState* exec) if (type == ArrayWithDouble) { double* buffer = result->butterfly()->contiguousDouble().data(); - memcpy(buffer, firstButterfly->contiguousDouble().data(), sizeof(JSValue) * firstArraySize); - memcpy(buffer + firstArraySize, secondButterfly->contiguousDouble().data(), sizeof(JSValue) * secondArraySize); + copyElements(buffer, 0, firstButterfly->contiguousDouble().data(), firstArraySize, firstType); + copyElements(buffer, firstArraySize, secondButterfly->contiguousDouble().data(), secondArraySize, secondType); + } else if (type != ArrayWithUndecided) { WriteBarrier* buffer = result->butterfly()->contiguous().data(); - memcpy(buffer, firstButterfly->contiguous().data(), sizeof(JSValue) * firstArraySize); - memcpy(buffer + firstArraySize, secondButterfly->contiguous().data(), sizeof(JSValue) * secondArraySize); + copyElements(buffer, 0, firstButterfly->contiguous().data(), firstArraySize, firstType); + copyElements(buffer, firstArraySize, secondButterfly->contiguous().data(), secondArraySize, secondType); } result->butterfly()->setPublicLength(resultSize); diff --git a/webkit/JavaScriptCore/runtime/JSONObject.cpp b/webkit/JavaScriptCore/runtime/JSONObject.cpp index 3282d09ed..bb15cde44 100644 --- a/webkit/JavaScriptCore/runtime/JSONObject.cpp +++ b/webkit/JavaScriptCore/runtime/JSONObject.cpp @@ -328,8 +328,10 @@ Stringifier::StringifyResult Stringifier::appendStringifiedValue(StringBuilder& const String& string = asString(value)->value(m_exec); if (UNLIKELY(m_exec->vm().exception())) return StringifyFailed; - builder.appendQuotedJSONString(string); - return StringifySucceeded; + if (builder.appendQuotedJSONString(string)) + return StringifySucceeded; + throwOutOfMemoryError(m_exec); + return StringifyFailed; } if (value.isNumber()) { diff --git a/webkit/JavaScriptCore/runtime/JSObject.h b/webkit/JavaScriptCore/runtime/JSObject.h index 97d0e3375..c18fd053a 100644 --- a/webkit/JavaScriptCore/runtime/JSObject.h +++ b/webkit/JavaScriptCore/runtime/JSObject.h @@ -1235,12 +1235,13 @@ inline bool JSObject::putDirectInternal(VM& vm, PropertyName propertyName, JSVal putDirect(vm, offset, value); structure->didReplaceProperty(offset); - slot.setExistingProperty(this, offset); if ((attributes & Accessor) != (currentAttributes & Accessor)) { ASSERT(!(attributes & ReadOnly)); setStructure(vm, Structure::attributeChangeTransition(vm, structure, propertyName, attributes)); - } + } else + slot.setExistingProperty(this, offset); + return true; } @@ -1288,13 +1289,14 @@ inline bool JSObject::putDirectInternal(VM& vm, PropertyName propertyName, JSVal return false; structure->didReplaceProperty(offset); - slot.setExistingProperty(this, offset); putDirect(vm, offset, value); if ((attributes & Accessor) != (currentAttributes & Accessor)) { ASSERT(!(attributes & ReadOnly)); setStructure(vm, Structure::attributeChangeTransition(vm, structure, propertyName, attributes)); - } + } else + slot.setExistingProperty(this, offset); + return true; } diff --git a/webkit/JavaScriptCore/runtime/StringConstructor.cpp b/webkit/JavaScriptCore/runtime/StringConstructor.cpp index c5f006ea2..34e132692 100644 --- a/webkit/JavaScriptCore/runtime/StringConstructor.cpp +++ b/webkit/JavaScriptCore/runtime/StringConstructor.cpp @@ -78,21 +78,28 @@ bool StringConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, Pr // ------------------------------ Functions -------------------------------- -static NEVER_INLINE JSValue stringFromCharCodeSlowCase(ExecState* exec) +static EncodedJSValue JSC_HOST_CALL stringFromCharCode(ExecState* exec) { + VM& vm = exec->vm(); + unsigned length = exec->argumentCount(); + if (LIKELY(length == 1)) { + unsigned code = exec->uncheckedArgument(0).toUInt32(exec); + if (vm.exception()) { + return JSValue::encode(JSValue()); + } + return JSValue::encode(jsSingleCharacterString(exec, code)); + } + UChar* buf; - PassRefPtr impl = StringImpl::createUninitialized(length, buf); - for (unsigned i = 0; i < length; ++i) + auto impl = StringImpl::createUninitialized(length, buf); + for (unsigned i = 0; i < length; ++i) { buf[i] = static_cast(exec->uncheckedArgument(i).toUInt32(exec)); - return jsString(exec, impl); -} - -static EncodedJSValue JSC_HOST_CALL stringFromCharCode(ExecState* exec) -{ - if (LIKELY(exec->argumentCount() == 1)) - return JSValue::encode(jsSingleCharacterString(exec, exec->uncheckedArgument(0).toUInt32(exec))); - return JSValue::encode(stringFromCharCodeSlowCase(exec)); + if (vm.exception()) { + return JSValue::encode(JSValue()); + } + } + return JSValue::encode(jsString(exec, WTF::move(impl))); } JSCell* JSC_HOST_CALL stringFromCharCode(ExecState* exec, int32_t arg) diff --git a/webkit/WTF/ChangeLog b/webkit/WTF/ChangeLog index 231d302a4..c68c49e4f 100644 --- a/webkit/WTF/ChangeLog +++ b/webkit/WTF/ChangeLog @@ -1,3 +1,92 @@ +2018-04-20 JF Bastien + + Handle more JSON stringify OOM + https://bugs.webkit.org/show_bug.cgi?id=184846 + + + Reviewed by Mark Lam. + + JSON stringification can OOM easily. Here's another case. + + * wtf/text/StringBuilderJSON.cpp: + (WTF::StringBuilder::appendQuotedJSONString): + + +2018-03-28 Robin Morisset + + appendQuotedJSONString stops on arithmetic overflow instead of propagating it upwards + https://bugs.webkit.org/show_bug.cgi?id=183894 + + Reviewed by Saam Barati. + + appendQuotedJSONString now returns a bool indicating whether it succeeded, instead of silently failing when given a string too large + to fit in 4GB. + + * wtf/text/StringBuilder.h: + * wtf/text/StringBuilderJSON.cpp: + (WTF::StringBuilder::appendQuotedJSONString): + +2016-06-17 Mark Lam + + OOM Assertion failure in JSON.stringify. + https://bugs.webkit.org/show_bug.cgi?id=158794 + + + Reviewed by Saam Barati. + + The bug was actually in StringBuilder::appendQuotedJSONString() where it failed + to detect an imminent unsigned int overflow. The fix is to use Checked + for the needed math, and RELEASE_ASSERT afterwards that we did not overflow. + + I also added more assertions to detect sooner if any there are any problems with + StringBuilder's m_buffer or m_length being incorrectly sized. These assertions + have been run on the JSC and layout tests without any issue. + + * wtf/text/StringBuilder.cpp: + (WTF::StringBuilder::resize): + (WTF::StringBuilder::allocateBuffer): + (WTF::StringBuilder::allocateBufferUpConvert): + (WTF::StringBuilder::reallocateBuffer): + (WTF::StringBuilder::reallocateBuffer): + (WTF::StringBuilder::reserveCapacity): + (WTF::StringBuilder::appendUninitializedSlow): + (WTF::StringBuilder::append): + (WTF::StringBuilder::appendQuotedJSONString): + * wtf/text/StringBuilder.h: + (WTF::StringBuilder::swap): + + +2016-05-18 Saam barati + + StringBuilder::appendQuotedJSONString doesn't properly protect against the math it's doing. Make the math fit the assertion. + https://bugs.webkit.org/show_bug.cgi?id=157868 + + Reviewed by Benjamin Poulain. + + appendQuotedJSONString was rounding up to the next power of two when resizing + its buffer. Lets call the allocation size X. If X > 2^31, then + roundUpToPowerOfTwo(X) == 0. This patch fixes this by making the + assertion reflect what the code is doing. We now allocate to a size + of X = std::max(maximumCapacityRequired , roundUpToPowerOfTwo(maximumCapacityRequired)) + + * wtf/text/StringBuilder.cpp: + (WTF::StringBuilder::appendQuotedJSONString): + + +2018-04-04 Yusuke Suzuki + + [WTF] Remove Atomics.cpp + https://bugs.webkit.org/show_bug.cgi?id=184300 + + Reviewed by Konstantin Tokarev. + + This Atomics.cpp is a workaround for GCC which version is < 4.8. + Our compiler requirement is now 5.0.0. This workaround is no + longer necessary. + + * wtf/Atomics.cpp: Removed. + * wtf/CMakeLists.txt: + 2017-09-30 Antti Koivisto Add makeWeakPtr for easier WeakPtr construction diff --git a/webkit/WTF/wtf/text/StringBuilder.cpp b/webkit/WTF/wtf/text/StringBuilder.cpp index ff09afc51..aa092575c 100644 --- a/webkit/WTF/wtf/text/StringBuilder.cpp +++ b/webkit/WTF/wtf/text/StringBuilder.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010, 2013 Apple Inc. All rights reserved. + * Copyright (C) 2010, 2013, 2016 Apple Inc. All rights reserved. * Copyright (C) 2012 Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -80,6 +80,7 @@ void StringBuilder::resize(unsigned newSize) allocateBuffer(m_buffer->characters16(), m_buffer->length()); } m_length = newSize; + ASSERT(m_buffer->length() >= m_length); return; } @@ -103,6 +104,7 @@ void StringBuilder::allocateBuffer(const LChar* currentCharacters, unsigned requ // Update the builder state. m_buffer = buffer.release(); m_string = String(); + ASSERT(m_buffer->length() == requiredLength); } // Allocate a new 16 bit buffer, copying in currentCharacters (these may come from either m_string @@ -117,6 +119,7 @@ void StringBuilder::allocateBuffer(const UChar* currentCharacters, unsigned requ // Update the builder state. m_buffer = buffer.release(); m_string = String(); + ASSERT(m_buffer->length() == requiredLength); } // Allocate a new 16 bit buffer, copying in currentCharacters (which is 8 bit and may come @@ -124,6 +127,7 @@ void StringBuilder::allocateBuffer(const UChar* currentCharacters, unsigned requ void StringBuilder::allocateBufferUpConvert(const LChar* currentCharacters, unsigned requiredLength) { ASSERT(m_is8Bit); + ASSERT(requiredLength >= m_length); // Copy the existing data into a new buffer, set result to point to the end of the existing data. RefPtr buffer = StringImpl::createUninitialized(requiredLength, m_bufferCharacters16); for (unsigned i = 0; i < m_length; ++i) @@ -134,6 +138,7 @@ void StringBuilder::allocateBufferUpConvert(const LChar* currentCharacters, unsi // Update the builder state. m_buffer = buffer.release(); m_string = String(); + ASSERT(m_buffer->length() == requiredLength); } template <> @@ -150,6 +155,7 @@ void StringBuilder::reallocateBuffer(unsigned requiredLength) m_buffer = StringImpl::reallocate(m_buffer.release(), requiredLength, m_bufferCharacters8); else allocateBuffer(m_buffer->characters8(), requiredLength); + ASSERT(m_buffer->length() == requiredLength); } template <> @@ -165,6 +171,7 @@ void StringBuilder::reallocateBuffer(unsigned requiredLength) m_buffer = StringImpl::reallocate(m_buffer.release(), requiredLength, m_bufferCharacters16); else allocateBuffer(m_buffer->characters16(), requiredLength); + ASSERT(m_buffer->length() == requiredLength); } void StringBuilder::reserveCapacity(unsigned newCapacity) @@ -189,6 +196,7 @@ void StringBuilder::reserveCapacity(unsigned newCapacity) allocateBuffer(m_string.characters16(), newCapacity); } } + ASSERT(!newCapacity || m_buffer->length() >= newCapacity); } // Make 'length' additional capacity be available in m_buffer, update m_string & m_length, @@ -234,6 +242,7 @@ CharType* StringBuilder::appendUninitializedSlow(unsigned requiredLength) CharType* result = getBufferCharacters() + m_length; m_length = requiredLength; + ASSERT(m_buffer->length() >= m_length); return result; } @@ -267,10 +276,11 @@ void StringBuilder::append(const UChar* characters, unsigned length) allocateBufferUpConvert(m_string.isNull() ? 0 : m_string.characters8(), expandedCapacity(capacity(), requiredLength)); } - memcpy(m_bufferCharacters16 + m_length, characters, static_cast(length) * sizeof(UChar)); + memcpy(m_bufferCharacters16 + m_length, characters, static_cast(length) * sizeof(UChar)); m_length = requiredLength; } else memcpy(appendUninitialized(length), characters, static_cast(length) * sizeof(UChar)); + ASSERT(m_buffer->length() >= m_length); } void StringBuilder::append(const LChar* characters, unsigned length) @@ -412,19 +422,32 @@ static void appendQuotedJSONStringInternal(OutputCharacterType*& output, const I } } -void StringBuilder::appendQuotedJSONString(const String& string) +bool StringBuilder::appendQuotedJSONString(const String& string) { // Make sure we have enough buffer space to append this string without having // to worry about reallocating in the middle. // The 2 is for the '"' quotes on each end. // The 6 is for characters that need to be \uNNNN encoded. - size_t maximumCapacityRequired = length() + 2 + string.length() * 6; - RELEASE_ASSERT(maximumCapacityRequired < std::numeric_limits::max()); + Checked stringLength = string.length(); + Checked maximumCapacityRequired = length(); + maximumCapacityRequired += 2 + stringLength * 6; + unsigned allocationSize; + + if (CheckedState::DidOverflow == maximumCapacityRequired.safeGet(allocationSize)) + return false; + + // This max() is here to allow us to allocate sizes between the range [2^31, 2^32 - 2] because roundUpToPowerOfTwo(1<<31 + some int smaller than 1<<31) == 0. + allocationSize = std::max(allocationSize, roundUpToPowerOfTwo(allocationSize)); + + // Allocating this much will definitely fail. + if (allocationSize >= 0x80000000) + return false; if (is8Bit() && !string.is8Bit()) - allocateBufferUpConvert(m_bufferCharacters8, roundUpToPowerOfTwo(maximumCapacityRequired)); + allocateBufferUpConvert(m_bufferCharacters8, allocationSize); else - reserveCapacity(roundUpToPowerOfTwo(maximumCapacityRequired)); + reserveCapacity(allocationSize); + ASSERT(m_buffer->length() >= allocationSize); if (is8Bit()) { ASSERT(string.is8Bit()); @@ -443,6 +466,8 @@ void StringBuilder::appendQuotedJSONString(const String& string) *output++ = '"'; m_length = output - m_bufferCharacters16; } + ASSERT(m_buffer->length() >= m_length); + return true; } } // namespace WTF diff --git a/webkit/WTF/wtf/text/StringBuilder.h b/webkit/WTF/wtf/text/StringBuilder.h index 1dc4ac622..f3569cdfe 100644 --- a/webkit/WTF/wtf/text/StringBuilder.h +++ b/webkit/WTF/wtf/text/StringBuilder.h @@ -159,7 +159,7 @@ class StringBuilder { append(U16_TRAIL(c)); } - WTF_EXPORT_PRIVATE void appendQuotedJSONString(const String&); + WTF_EXPORT_PRIVATE bool appendQuotedJSONString(const String&); template ALWAYS_INLINE void appendLiteral(const char (&characters)[charactersCount]) { append(characters, charactersCount - 1); } @@ -276,6 +276,7 @@ class StringBuilder { m_buffer.swap(stringBuilder.m_buffer); std::swap(m_is8Bit, stringBuilder.m_is8Bit); std::swap(m_bufferCharacters8, stringBuilder.m_bufferCharacters8); + ASSERT(!m_buffer || m_buffer->length() >= m_length); } private: diff --git a/webkit/WebCore/ChangeLog b/webkit/WebCore/ChangeLog index 519df1f87..8a7e88d8d 100644 --- a/webkit/WebCore/ChangeLog +++ b/webkit/WebCore/ChangeLog @@ -1,3 +1,663 @@ +2018-07-26 Babak Shafiei + + Cherry-pick r234291. rdar://problem/42650439 + + [Fullscreen] Do not create composited layers for renderers unless they are part of the fullscreen subtree. + https://bugs.webkit.org/show_bug.cgi?id=188087 + + + Reviewed by Simon Fraser. + + Source/WebCore: + + Sibling composited layers prevent battery lifetime optimizations when in fullscreen. + + Test: compositing/no-compositing-when-fulll-screen-is-present.html + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::isDescendantOf const): + * rendering/RenderLayer.h: + * rendering/RenderLayerCompositor.cpp: + (WebCore::isDescendantOfFullScreenLayer): + (WebCore::RenderLayerCompositor::requiresCompositingForWillChange const): + (WebCore::RenderLayerCompositor::requiresCompositingForPosition const): + + LayoutTests: + + * compositing/no-compositing-when-fulll-screen-is-present-expected.txt: Added. + * compositing/no-compositing-when-fulll-screen-is-present.html: Added. + + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234291 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-07-26 Zalan Bujtas + + [Fullscreen] Do not create composited layers for renderers unless they are part of the fullscreen subtree. + https://bugs.webkit.org/show_bug.cgi?id=188087 + + + Reviewed by Simon Fraser. + + Sibling composited layers prevent battery lifetime optimizations when in fullscreen. + + Test: compositing/no-compositing-when-fulll-screen-is-present.html + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::isDescendantOf const): + * rendering/RenderLayer.h: + * rendering/RenderLayerCompositor.cpp: + (WebCore::isDescendantOfFullScreenLayer): + (WebCore::RenderLayerCompositor::requiresCompositingForWillChange const): + (WebCore::RenderLayerCompositor::requiresCompositingForPosition const): + +2017-09-28 Zan Dobersek + + [Cairo] Remove the cairo_glyph_t complexity from GlyphBuffer + https://bugs.webkit.org/show_bug.cgi?id=177598 + + Reviewed by Carlos Garcia Campos. + + Remove the decade-old use of cairo_glyph_t as the underlying type for + Glyph. The former spans 24 bytes in size, while the latte is just 2 + bytes. The x and y coordinate attributes of cairo_glyph_t were only + used in FontCascade::drawGlyphs() implementation, where they were + overridden even if the same GlyphBuffer object was used here repeatedly. + + FontCascade::drawGlyphs() now creates a new Vector object + and fills it only with the glyph index and coordinates data for glyphs + that will actually be drawn. This will likely in the future be leveraged + to pack the necessary data and perform the drawing operations in + parallelized tasks. GlyphBuffer usages that before required USE(CAIRO) + special-casing can now be simplified. + + This also removes the need for header inclusion in the + GlyphBuffer.h header. This further removes Cairo header inclusion in + roughly 600 build targets. + + No new tests -- no change in behavior. + + * platform/graphics/FontCascade.cpp: + (WebCore::FontCascade::widthForSimpleText const): + * platform/graphics/GlyphBuffer.h: + (WebCore::GlyphBuffer::glyphAt const): + (WebCore::GlyphBuffer::add): + * platform/graphics/cairo/FontCairo.cpp: + (WebCore::drawGlyphsToContext): + (WebCore::drawGlyphsShadow): + (WebCore::FontCascade::drawGlyphs): + * platform/graphics/displaylists/DisplayListItems.cpp: + (WebCore::DisplayList::DrawGlyphs::generateGlyphBuffer const): + +2018-07-27 Babak Shafiei + + Cherry-pick r234318. rdar://problem/42467016 + + [WIN] Crash when trying to access store pages + https://bugs.webkit.org/show_bug.cgi?id=188032 + + + Reviewed by Brent Fulgham. + + The Windows implementation of GlyphBuffer has an additional member, m_offsets, which represents + an additional offset to the position to paint each glyph. It also has two add() functions, one + which appends to this vector, and one which doesn't. The one that doesn't append to the vector + should never be called on Windows (because Windows requires this vector to be full). + + There were two situations where it was getting called: + 1) Inside ComplexTextController + 2) Inside display list playback + + Windows shouldn't be using ComplexTextController because the Windows implementation of this + class isn't ready yet; instead it should be using UniscribeController. The display list playback + code should be used on Windows. + + Rather than fix the function to append an offset, we actually don't need the m_offsets vector + in the first place. Instead, we can do it the same way that the Cocoa ports do it, which is to + bake the offsets into the glyph advances. This is possible because the GlyphBuffer doesn't need + to distinguish between layout advances and paint advances, so we can bake them together and + just put paint advances in the GlyphBuffer. This should be a small (probably within-the-noise) + performance and memory improvement. + + * platform/graphics/ComplexTextController.cpp: + (WebCore::ComplexTextController::ComplexTextController): Make sure that ComplexTextController + isn't used on Windows. + * platform/graphics/FontCascade.cpp: + (WebCore::FontCascade::widthOfTextRange const): Switch from ComplexTextController to + UniscribeController on Windows. + (WebCore::FontCascade::drawGlyphBuffer const): After deleting the m_offsets vector, there's + no reason to consult it when drawing. + * platform/graphics/GlyphBuffer.h: Remove m_offsets + (WebCore::GlyphBuffer::clear): + (WebCore::GlyphBuffer::advanceAt const): + (WebCore::GlyphBuffer::add): + (WebCore::GlyphBuffer::expandLastAdvance): + (WebCore::GlyphBuffer::shrink): + (WebCore::GlyphBuffer::swap): + (WebCore::GlyphBuffer::offsetAt const): Deleted. + * platform/graphics/win/FontCGWin.cpp: + (WebCore::FontCascade::drawGlyphs): After deleting the m_offsets vector, there's no reason + to consult it when drawing. + * platform/graphics/win/FontCascadeDirect2D.cpp: + (WebCore::FontCascade::drawGlyphs): Ditto. + * platform/graphics/win/UniscribeController.cpp: + (WebCore::UniscribeController::shapeAndPlaceItem): Bake in the offsets into the glyph advances. + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234318 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-07-27 Myles C. Maxfield + + [WIN] Crash when trying to access store pages + https://bugs.webkit.org/show_bug.cgi?id=188032 + + + Reviewed by Brent Fulgham. + + The Windows implementation of GlyphBuffer has an additional member, m_offsets, which represents + an additional offset to the position to paint each glyph. It also has two add() functions, one + which appends to this vector, and one which doesn't. The one that doesn't append to the vector + should never be called on Windows (because Windows requires this vector to be full). + + There were two situations where it was getting called: + 1) Inside ComplexTextController + 2) Inside display list playback + + Windows shouldn't be using ComplexTextController because the Windows implementation of this + class isn't ready yet; instead it should be using UniscribeController. The display list playback + code should be used on Windows. + + Rather than fix the function to append an offset, we actually don't need the m_offsets vector + in the first place. Instead, we can do it the same way that the Cocoa ports do it, which is to + bake the offsets into the glyph advances. This is possible because the GlyphBuffer doesn't need + to distinguish between layout advances and paint advances, so we can bake them together and + just put paint advances in the GlyphBuffer. This should be a small (probably within-the-noise) + performance and memory improvement. + + * platform/graphics/ComplexTextController.cpp: + (WebCore::ComplexTextController::ComplexTextController): Make sure that ComplexTextController + isn't used on Windows. + * platform/graphics/FontCascade.cpp: + (WebCore::FontCascade::widthOfTextRange const): Switch from ComplexTextController to + UniscribeController on Windows. + (WebCore::FontCascade::drawGlyphBuffer const): After deleting the m_offsets vector, there's + no reason to consult it when drawing. + * platform/graphics/GlyphBuffer.h: Remove m_offsets + (WebCore::GlyphBuffer::clear): + (WebCore::GlyphBuffer::advanceAt const): + (WebCore::GlyphBuffer::add): + (WebCore::GlyphBuffer::expandLastAdvance): + (WebCore::GlyphBuffer::shrink): + (WebCore::GlyphBuffer::swap): + (WebCore::GlyphBuffer::offsetAt const): Deleted. + * platform/graphics/win/FontCGWin.cpp: + (WebCore::FontCascade::drawGlyphs): After deleting the m_offsets vector, there's no reason + to consult it when drawing. + * platform/graphics/win/FontCascadeDirect2D.cpp: + (WebCore::FontCascade::drawGlyphs): Ditto. + * platform/graphics/win/UniscribeController.cpp: + (WebCore::UniscribeController::shapeAndPlaceItem): Bake in the offsets into the glyph advances. + +2018-07-25 Babak Shafiei + + Cherry-pick r234111. rdar://problem/42604691 + + WebResourceLoadStatisticsStore fails to unregister itself as a MessageReceiver in its destructor + https://bugs.webkit.org/show_bug.cgi?id=187910 + + + Reviewed by Brent Fulgham. + + Source/WebCore: + + Add internals API that causes the ResourceLoadObserver to notify its observer, and avoid waiting + for the 5 second delay. + + * testing/Internals.cpp: + (WebCore::Internals::notifyResourceLoadObserver): + * testing/Internals.h: + * testing/Internals.idl: + + Source/WebKit: + + The WebResourceLoadStatisticsStore was only removing itself as a MessageReceiver from the WebProcessProxy + and that WebProcessProxy's connection was getting closed. However, it is possible for the + WebResourceLoadStatisticsStore to get destroyed before this happens. This would lead to crashes such as + the one in . + + To address the issue, we let the WebsiteDataStore take care of registering / unregistering the + WebResourceLoadStatisticsStore as a MessageReceiver with the WebProcessProxy. This is more reliable since + the WebsiteDataStore is the one that subclasses WebProcessLifetimeObserver. Make sure the + WebResourceLoadStatisticsStore is removed as a MessageReceiver whenever the WebsiteDataStore is destroyed + or WebsiteDataStore::m_resourceLoadStatistics gets cleared. + + * UIProcess/WebResourceLoadStatisticsStore.cpp: + * UIProcess/WebResourceLoadStatisticsStore.h: + Drop logic to add / remove the WebResourceLoadStatisticsStore as a receiver now that the + WebsiteDataStore takes care of it. + + * UIProcess/WebsiteData/WebsiteDataStore.cpp: + (WebKit::WebsiteDataStore::~WebsiteDataStore): + Make sure the WebResourceLoadStatisticsStore gets unregistered as a MessageReceiver from all associated + WebProcessProxy objects when the WebsiteDataStore gets destroyed. + + (WebKit::WebsiteDataStore::webProcessWillOpenConnection): + (WebKit::WebsiteDataStore::webProcessDidCloseConnection): + Register / Unregister the WebResourceLoadStatisticsStore as a MessageReceiver with the WebProcessProxy. + + (WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled): + Make sure we unregister the WebResourceLoadStatisticsStore as a MessageReceiver with all associated + WebProcessProxy objects before we clear m_resourceLoadStatistics as this will causes the + WebResourceLoadStatisticsStore to get destroyed. + + (WebKit::WebsiteDataStore::unregisterWebResourceLoadStatisticsStoreAsMessageReceiver): + (WebKit::WebsiteDataStore::registerWebResourceLoadStatisticsStoreAsMessageReceiver): + Add utility functions to register / unregister WebResourceLoadStatisticsStore as a MessageReceiver with + all associated WebProcessProxy objects. + + (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): + Register the new WebResourceLoadStatisticsStore as a MessageReceiver with all associated WebProcessProxy + objects in case setResourceLoadStatisticsEnabled(true) gets called *after* we've already started + WebProcesses. + + * UIProcess/WebsiteData/WebsiteDataStore.h: + + Tools: + + Add API test coverage. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm: + (-[DisableITPDuringNavigationDelegate webView:didCommitNavigation:]): + (-[DisableITPDuringNavigationDelegate webView:didFinishNavigation:]): + (TEST): + * TestWebKitAPI/Tests/WebKitCocoa/notify-resourceLoadObserver.html: Added. + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234111 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-07-23 Chris Dumez + + WebResourceLoadStatisticsStore fails to unregister itself as a MessageReceiver in its destructor + https://bugs.webkit.org/show_bug.cgi?id=187910 + + + Reviewed by Brent Fulgham. + + Add internals API that causes the ResourceLoadObserver to notify its observer, and avoid waiting + for the 5 second delay. + + * testing/Internals.cpp: + (WebCore::Internals::notifyResourceLoadObserver): + * testing/Internals.h: + * testing/Internals.idl: + +2018-07-25 Babak Shafiei + + Cherry-pick r234222. rdar://problem/42612113 + + Build fix after r234215. Unreviewed. + + * rendering/RenderTheme.cpp: + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234222 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-07-25 Zalan Bujtas + + Build fix after r234215. Unreviewed. + + * rendering/RenderTheme.cpp: + +2018-07-24 Babak Shafiei + + Cherry-pick r234158. rdar://problem/42551556 + + [Cocoa] Stop crashing in lastResortFallbackFont() + https://bugs.webkit.org/show_bug.cgi?id=187936 + + Reviewed by Jon Lee. + + CoreText can get into a state where both Times and Lucida Grande are inaccessible. + Instead of crashing, we should use the real LastResort, which is backed by a section + in the .rodata of the CoreText dylib, and as such should always exist. + + * platform/graphics/FontCache.cpp: + (WebCore::FontCache::fontForFamily): + * platform/graphics/cocoa/FontCacheCoreText.cpp: + (WebCore::FontCache::lastResortFallbackFont): + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234158 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-07-24 Myles C. Maxfield + + [Cocoa] Stop crashing in lastResortFallbackFont() + https://bugs.webkit.org/show_bug.cgi?id=187936 + + Reviewed by Jon Lee. + + CoreText can get into a state where both Times and Lucida Grande are inaccessible. + Instead of crashing, we should use the real LastResort, which is backed by a section + in the .rodata of the CoreText dylib, and as such should always exist. + + * platform/graphics/FontCache.cpp: + (WebCore::FontCache::fontForFamily): + * platform/graphics/cocoa/FontCacheCoreText.cpp: + (WebCore::FontCache::lastResortFallbackFont): + +2018-07-23 Babak Shafiei + + Cherry-pick r234073. rdar://problem/42451644 + + Remove completed animations from GraphicsLayer, thus avoiding excessive backing store allocation + https://bugs.webkit.org/show_bug.cgi?id=187844 + rdar://problem/40387294 + + Reviewed by Dean Jackson. + Source/WebCore: + + A keyframe animation which animates 3D transforms, and is fill-forwards, currently + leaves the GraphicsLayer in a state where it has a "running" animation. However, the + logic that computes animation extent in RenderLayerBacking::updateGeometry() only does + so for running or paused animations. GraphicsLayer then thinks that it has an active + transform animation with unknown extent, and refuses to detach its backing store. + + This triggers excessive layer creation on some sites (e.g. https://www.kqed.org). + + Fix by always removing animations from the GraphicsLayer when they finish, whether + or not they fill forwards. This is done by having KeyframeAnimation::onAnimationEnd() + always call endAnimation(). + + This change only fixes the non-Web Animation code path. webkit.org/b/187845 exists + to fix the other code path. + + Also improve some logging that would have revealed this problem sooner. + + Test: compositing/backing/backing-store-attachment-fill-forwards-animation.html + + * page/animation/AnimationBase.h: + (WebCore::AnimationBase::endAnimation): + * page/animation/ImplicitAnimation.cpp: + (WebCore::ImplicitAnimation::endAnimation): + * page/animation/ImplicitAnimation.h: + * page/animation/KeyframeAnimation.cpp: + (WebCore::KeyframeAnimation::endAnimation): + (WebCore::KeyframeAnimation::onAnimationEnd): + * page/animation/KeyframeAnimation.h: + * platform/graphics/ca/GraphicsLayerCA.cpp: + (WebCore::GraphicsLayerCA::addAnimation): + (WebCore::GraphicsLayerCA::updateCoverage): + + LayoutTests: + + * compositing/backing/backing-store-attachment-fill-forwards-animation-expected.txt: Added. + * compositing/backing/backing-store-attachment-fill-forwards-animation.html: Added. + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234073 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-07-19 Simon Fraser + + Remove completed animations from GraphicsLayer, thus avoiding excessive backing store allocation + https://bugs.webkit.org/show_bug.cgi?id=187844 + rdar://problem/40387294 + + Reviewed by Dean Jackson. + + A keyframe animation which animates 3D transforms, and is fill-forwards, currently + leaves the GraphicsLayer in a state where it has a "running" animation. However, the + logic that computes animation extent in RenderLayerBacking::updateGeometry() only does + so for running or paused animations. GraphicsLayer then thinks that it has an active + transform animation with unknown extent, and refuses to detach its backing store. + + This triggers excessive layer creation on some sites (e.g. https://www.kqed.org). + + Fix by always removing animations from the GraphicsLayer when they finish, whether + or not they fill forwards. This is done by having KeyframeAnimation::onAnimationEnd() + always call endAnimation(). + + This change only fixes the non-Web Animation code path. webkit.org/b/187845 exists + to fix the other code path. + + Also improve some logging that would have revealed this problem sooner. + + Test: compositing/backing/backing-store-attachment-fill-forwards-animation.html + + * page/animation/AnimationBase.h: + (WebCore::AnimationBase::endAnimation): + * page/animation/ImplicitAnimation.cpp: + (WebCore::ImplicitAnimation::endAnimation): + * page/animation/ImplicitAnimation.h: + * page/animation/KeyframeAnimation.cpp: + (WebCore::KeyframeAnimation::endAnimation): + (WebCore::KeyframeAnimation::onAnimationEnd): + * page/animation/KeyframeAnimation.h: + * platform/graphics/ca/GraphicsLayerCA.cpp: + (WebCore::GraphicsLayerCA::addAnimation): + (WebCore::GraphicsLayerCA::updateCoverage): + +2018-07-20 Babak Shafiei + + Cherry-pick r234002. rdar://problem/42432954 + + REGRESSION(r233926): media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-pip-to-inline.html is a TIMEOUT failure + https://bugs.webkit.org/show_bug.cgi?id=187813 + + Reviewed by Jon Lee. + + In r233926, we changed the behavior of entering PiP to exit fullscreen only after entering PiP completes. The + test in question will immediately request "inline" presentation mode once the PiP animation begins, and thus + it's asking to "exit fullscreen" when both in standard fullscreen and also in PiP. The fix is not to bail out + early if we're in standard (element) fullscreen, but to allow the remaining steps to complete and exit PiP as + well. + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::exitFullscreen): + + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234002 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-07-19 Jer Noble + + REGRESSION(r233926): media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-pip-to-inline.html is a TIMEOUT failure + https://bugs.webkit.org/show_bug.cgi?id=187813 + + Reviewed by Jon Lee. + + In r233926, we changed the behavior of entering PiP to exit fullscreen only after entering PiP completes. The + test in question will immediately request "inline" presentation mode once the PiP animation begins, and thus + it's asking to "exit fullscreen" when both in standard fullscreen and also in PiP. The fix is not to bail out + early if we're in standard (element) fullscreen, but to allow the remaining steps to complete and exit PiP as + well. + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::exitFullscreen): + +2018-07-18 Babak Shafiei + + Cherry-pick r233865. rdar://problem/42343023 + + Fullscreen requires active document. + https://bugs.webkit.org/show_bug.cgi?id=186226 + rdar://problem/36187413 + + Patch by Jeremy Jones on 2018-07-16 + Reviewed by Jer Noble. + + Source/WebCore: + + Test: media/no-fullscreen-when-hidden.html + + This change guarantees the document to be visible for both element fullscreen and video fullscreen. + + User gesture is not enough to guarantee that the document is visible when fullscreen is initiated + because JavaScript can spin wait before initiating fullscreen. During that spin the page or window might + be hidden. + + Document::hidden() can't be relied upon because it won't update while JavaScript spins. + + This change adds a sync call to the UI process to get the current UI visibility state. + + * dom/Document.cpp: + (WebCore::Document::requestFullScreenForElement): + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::enterFullscreen): + * page/ChromeClient.h: + + Source/WebKit: + + This change guarantees the document to be visible for both element fullscreen and video fullscreen. + + User gesture is not enough to guarantee that the document is visible when fullscreen is initiated + because JavaScript can spin wait before initiating fullscreen. During that spin the page or window might + be hidden. + + Document::hidden() can't be relied upon because it won't update while JavaScript spins. + + This change adds a sync call to the UI process to get the current UI visibility state. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::getIsViewVisible): + * UIProcess/WebPageProxy.h: + * UIProcess/WebPageProxy.messages.in: + * WebProcess/WebCoreSupport/WebChromeClient.cpp: + (WebKit::WebChromeClient::isViewVisible): + * WebProcess/WebCoreSupport/WebChromeClient.h: + + LayoutTests: + + This change guarantees the document to be visible for both element fullscreen and video fullscreen. + + User gesture is not enough to guarantee that the document is visible when fullscreen is initiated + because JavaScript can spin wait before initiating fullscreen. During that spin the page or window might + be hidden. + + Document::hidden() can't be relied upon because it won't update while JavaScript spins. + + This change adds a sync call to the UI process to get the current UI visibility state. + + * media/no-fullscreen-when-hidden.html: Added. + * media/video-test.js: + (eventName.string_appeared_here.thunk): + (runWithKeyDown): + * platform/ios-wk1/TestExpectations: + * platform/mac-wk1/TestExpectations: + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233865 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-07-16 Jeremy Jones + + Fullscreen requires active document. + https://bugs.webkit.org/show_bug.cgi?id=186226 + rdar://problem/36187413 + + Reviewed by Jer Noble. + + Test: media/no-fullscreen-when-hidden.html + + This change guarantees the document to be visible for both element fullscreen and video fullscreen. + + User gesture is not enough to guarantee that the document is visible when fullscreen is initiated + because JavaScript can spin wait before initiating fullscreen. During that spin the page or window might + be hidden. + + Document::hidden() can't be relied upon because it won't update while JavaScript spins. + + This change adds a sync call to the UI process to get the current UI visibility state. + + * dom/Document.cpp: + (WebCore::Document::requestFullScreenForElement): + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::enterFullscreen): + * page/ChromeClient.h: + +2018-05-02 Brent Fulgham + + Widgets should hold a WeakPtr to their parents + https://bugs.webkit.org/show_bug.cgi?id=185239 + + + Reviewed by Zalan Bujtas. + + * platform/ScrollView.h: + (WebCore::ScrollView::weakPtrFactory): Added. + * platform/Widget.cpp: + (WebCore::Widget::init): Don't perform an unnecessary assignment. + (WebCore::Widget::setParent): Grab a WeakPtr to the parent ScrollView. + * platform/Widget.h: + (WebCore::Widget::parent const): Change type to a WeakPtr. + +2018-04-03 Jason Marcell + + Cherry-pick r229830. rdar://problem/39155360 + + Disconnect the SVGPathSegList items from their SVGPathElement before rebuilding a new list + https://bugs.webkit.org/show_bug.cgi?id=183723 + + + Patch by Said Abou-Hallawa on 2018-03-21 + Reviewed by Daniel Bates. + + Source/WebCore: + + When setting the "d" attribute directly on a path, we rebuild the list + of path segments held for creating the property tear off. The old path + segments need to get disconnected from the path element. We already do + that when a path segment is replaced or removed. + + Test: svg/dom/reuse-pathseg-after-changing-d.html + + * svg/SVGPathElement.cpp: + (WebCore::SVGPathElement::svgAttributeChanged): + * svg/SVGPathSegList.cpp: + (WebCore::SVGPathSegList::clear): SVGPathSegListValues::clearContextAndRoles() + will now be called from SVGPathSegListValues::clear() via SVGListProperty::clearValues(). + (WebCore::SVGPathSegList::replaceItem): + (WebCore::SVGPathSegList::removeItem): + (WebCore::SVGPathSegList::clearContextAndRoles): Deleted. + * svg/SVGPathSegList.h: SVGPathSegListValues::clearContextAndRoles() will + now be called from SVGPathSegListValues::clear() via SVGListProperty::initializeValues(). + * svg/SVGPathSegListValues.cpp: + (WebCore::SVGPathSegListValues::clearItemContextAndRole): + (WebCore::SVGPathSegListValues::clearContextAndRoles): + * svg/SVGPathSegListValues.h: + (WebCore::SVGPathSegListValues::operator=): + (WebCore::SVGPathSegListValues::clear): + + LayoutTests: + + * svg/dom/reuse-pathseg-after-changing-d-expected.txt: Added. + * svg/dom/reuse-pathseg-after-changing-d.html: Added. + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229830 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-03-21 Said Abou-Hallawa + + Disconnect the SVGPathSegList items from their SVGPathElement before rebuilding a new list + https://bugs.webkit.org/show_bug.cgi?id=183723 + + + Reviewed by Daniel Bates. + + When setting the "d" attribute directly on a path, we rebuild the list + of path segments held for creating the property tear off. The old path + segments need to get disconnected from the path element. We already do + that when a path segment is replaced or removed. + + Test: svg/dom/reuse-pathseg-after-changing-d.html + + * svg/SVGPathElement.cpp: + (WebCore::SVGPathElement::svgAttributeChanged): + * svg/SVGPathSegList.cpp: + (WebCore::SVGPathSegList::clear): SVGPathSegListValues::clearContextAndRoles() + will now be called from SVGPathSegListValues::clear() via SVGListProperty::clearValues(). + (WebCore::SVGPathSegList::replaceItem): + (WebCore::SVGPathSegList::removeItem): + (WebCore::SVGPathSegList::clearContextAndRoles): Deleted. + * svg/SVGPathSegList.h: SVGPathSegListValues::clearContextAndRoles() will + now be called from SVGPathSegListValues::clear() via SVGListProperty::initializeValues(). + * svg/SVGPathSegListValues.cpp: + (WebCore::SVGPathSegListValues::clearItemContextAndRole): + (WebCore::SVGPathSegListValues::clearContextAndRoles): + * svg/SVGPathSegListValues.h: + (WebCore::SVGPathSegListValues::operator=): + (WebCore::SVGPathSegListValues::clear): + 2017-12-11 Zalan Bujtas FloatingObjects/FloatingObject classes should hold weak references to renderers @@ -101,6 +761,24 @@ * loader/NavigationScheduler.cpp: (WebCore::NavigationScheduler::schedule): +2018-05-09 Jason Marcell + + Cherry-pick r231516. rdar://problem/40096750 + + Unreviewed build fix; add missing function definition. + + * html/HTMLMediaElement.h: + (WebCore::HTMLMediaElement::didPassCORSAccessCheck const): + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231516 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-05-08 Jer Noble + + Unreviewed build fix; add missing function definition. + + * html/HTMLMediaElement.h: + (WebCore::HTMLMediaElement::didPassCORSAccessCheck const): + 2018-05-08 Jason Marcell Cherry-pick r231236. rdar://problem/40050705 @@ -174,6 +852,67 @@ * html/SubmitInputType.cpp: (WebCore::SubmitInputType::handleDOMActivateEvent): Ditto. +2018-05-08 Jason Marcell + + Cherry-pick r231291. rdar://problem/40050729 + + Use RetainPtr for form input type + https://bugs.webkit.org/show_bug.cgi?id=185210 + + + Reviewed by Ryosuke Niwa. + + Source/WebCore: + + Refactor our HTMLInputElement class to store its InputType member as a RefPtr. + + Test: fast/forms/access-key-mutation-2.html. + + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::HTMLInputElement): + (WebCore::HTMLInputElement::didAddUserAgentShadowRoot): + (WebCore::HTMLInputElement::accessKeyAction): + (WebCore::HTMLInputElement::parseAttribute): + (WebCore::HTMLInputElement::appendFormData): + * html/HTMLInputElement.h: + * html/InputType.cpp: + (WebCore::createInputType): + (WebCore::InputType::create): + (WebCore::InputType::createText): + * html/InputType.h: + + LayoutTests: + + * fast/forms/access-key-mutation-2-expected.txt: Added. + * fast/forms/access-key-mutation-2.html: Added. + + git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231291 268f45cc-cd09-0410-ab3c-d52691b4dbfc + + 2018-05-02 Brent Fulgham + + Use RetainPtr for form input type + https://bugs.webkit.org/show_bug.cgi?id=185210 + + + Reviewed by Ryosuke Niwa. + + Refactor our HTMLInputElement class to store its InputType member as a RefPtr. + + Test: fast/forms/access-key-mutation-2.html. + + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::HTMLInputElement): + (WebCore::HTMLInputElement::didAddUserAgentShadowRoot): + (WebCore::HTMLInputElement::accessKeyAction): + (WebCore::HTMLInputElement::parseAttribute): + (WebCore::HTMLInputElement::appendFormData): + * html/HTMLInputElement.h: + * html/InputType.cpp: + (WebCore::createInputType): + (WebCore::InputType::create): + (WebCore::InputType::createText): + * html/InputType.h: + 2018-04-03 Jason Marcell Cherry-pick r230052. rdar://problem/39155251 @@ -350,7 +1089,72 @@ * loader/FrameLoader.cpp: (WebCore::FrameLoader::stopLoading): -2018-01-29 Antti Koivisto +2017-07-10 Andreas Kling + + REGRESSION(r210226): Keyboard-focused element not preserved when navigating back through page cache, causing multiple elements to have focus + https://bugs.webkit.org/show_bug.cgi?id=174302 + + + Reviewed by Antti Koivisto. + + Don't clear the active/hovered/focused elements when destroying the render tree, + since we might need to reconstruct it later, and would like to remember which + elements those were. + + Only the focused state actually stuck when going in and out of the page cache, + but this patch removes all the element pointer clearing for consistency. + + Test: fast/history/page-cache-element-state-focused.html + + * dom/Document.cpp: + (WebCore::Document::destroyRenderTree): + +2017-01-05 Andreas Kling + + REGRESSION(r210226): overflow:scroll scroll position not restored on back navigation + + + Reviewed by Antti Koivisto. + + Before r210226, the render tree being torn down and the document being destroyed + were roughly the same thing, since they would always happen together, from the + render tree's perspective. + + Changing this caused us to skip over the code that saves the scroll position + for an element's RenderLayer when going into the page cache. Navigating back to + that page would then scroll the layer to (0,0) instead of the previous position. + + The fix is simply to remove the check for documentBeingDestroyed() in ~RenderLayer(). + Note that two checks are being removed, there was also a weird "optimization" + to avoid nulling out EventHandler's m_resizeLayer if it points to this layer. + That pointer would eventually get nulled out in EventHandler::clear() anyway, + but it feels better to not let that pointer dangle. + + Test: fast/scrolling/page-cache-back-overflow-scroll-restore.html + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::~RenderLayer): + +2017-01-03 Andreas Kling + + REGRESSION(r210226): fast/history/back-from-page-with-focused-iframe.html crashes under GuardMalloc + + + + Reviewed by Antti Koivisto. + + The problem was that tearDownRenderers() would cause commit Widget hierarchy updates + before returning, which is just before Document clears its m_renderView pointer. + This led to an awkward callback into Page::setActivityState() which ended up trying + to clear the selection inside a partially dead render tree. + + Fix this by adding a WidgetHierarchyUpdatesSuspensionScope to Document::destroyRenderTree() + which ensures that Widget updates don't happen until after Document::m_renderView is cleared. + + * dom/Document.cpp: + (WebCore::Document::destroyRenderTree): + +018-01-29 Antti Koivisto CalcExpressionBlendLength::evaluate hits stack limit https://bugs.webkit.org/show_bug.cgi?id=182243 @@ -373,6 +1177,7 @@ * platform/CalculationValue.h: (WebCore::CalcExpressionBlendLength::CalcExpressionBlendLength): Deleted. + 2018-01-30 Jason Marcell Cherry-pick r227697. rdar://problem/37019483 diff --git a/webkit/WebCore/Modules/mediasource/SampleMap.cpp b/webkit/WebCore/Modules/mediasource/SampleMap.cpp index b167db007..935c4c058 100644 --- a/webkit/WebCore/Modules/mediasource/SampleMap.cpp +++ b/webkit/WebCore/Modules/mediasource/SampleMap.cpp @@ -147,38 +147,12 @@ PresentationOrderSampleMap::iterator PresentationOrderSampleMap::findSampleWithP PresentationOrderSampleMap::iterator PresentationOrderSampleMap::findSampleContainingPresentationTime(const MediaTime& time) { -#if !PLATFORM(WKC) auto range = std::equal_range(begin(), end(), time, SampleIsLessThanMediaTimeComparator()); -#else - std::pair range; - range.first = range.second = end(); - bool firstfound = false; - for (auto it = begin(); it!=end(); ++it) { - if (SampleIsLessThanMediaTimeComparator()(*it, time)) { - if (!firstfound) { - firstfound = true; - range.first = it; - } - } else if (firstfound) { - range.second = it; - break; - } - } -#endif if (range.first == range.second) return end(); return range.first; } -#if PLATFORM(WKC) - -PresentationOrderSampleMap::iterator PresentationOrderSampleMap::findSampleAfterPresentationTime(const MediaTime& time) -{ - return std::lower_bound(begin(), end(), time, SampleIsLessThanMediaTimeComparator()); -} - -#endif - PresentationOrderSampleMap::iterator PresentationOrderSampleMap::findSampleOnOrAfterPresentationTime(const MediaTime& time) { return m_samples.lower_bound(time); @@ -236,13 +210,9 @@ DecodeOrderSampleMap::reverse_iterator DecodeOrderSampleMap::findSyncSamplePrior DecodeOrderSampleMap::iterator DecodeOrderSampleMap::findSyncSampleAfterPresentationTime(const MediaTime& time, const MediaTime& threshold) { -#if PLATFORM(WKC) - PresentationOrderSampleMap::iterator currentSamplePTS = m_presentationOrder.findSampleAfterPresentationTime(time); -#else // If PTS of foundSample below is less than or equal to time argument, // it returns decodeEnd() as unexpected PresentationOrderSampleMap::iterator currentSamplePTS = m_presentationOrder.findSampleOnOrAfterPresentationTime(time); -#endif if (currentSamplePTS == m_presentationOrder.end()) return end(); @@ -282,60 +252,13 @@ PresentationOrderSampleMap::iterator_range PresentationOrderSampleMap::findSampl #else std::pair range(beginTime, endTime); #endif -#if !PLATFORM(WKC) return std::equal_range(begin(), end(), range, SamplePresentationTimeIsInsideRangeComparator()); -#else - PresentationOrderSampleMap::iterator_range ret; - bool findfirst = false; - bool findsecond = false; - for (auto it=begin(); it!=end(); ++it) { - if (!findfirst) { - if (!SamplePresentationTimeIsInsideRangeComparator()(*it, range)) { - findfirst = true; - ret.first = it; - } - } - if (!findsecond) { - if (SamplePresentationTimeIsInsideRangeComparator()(range, *it)) { - findsecond = true; - ret.second = it; - } - } - if (findfirst && findsecond) { - break; - } - } - if (!findfirst) { - ret.first = end(); - } - if (!findsecond) { - ret.second = end(); - } - return ret; -#endif } PresentationOrderSampleMap::iterator_range PresentationOrderSampleMap::findSamplesWithinPresentationRange(const MediaTime& beginTime, const MediaTime& endTime) { std::pair range(beginTime, endTime); -#if !PLATFORM(WKC) return std::equal_range(begin(), end(), range, SamplePresentationTimeIsWithinRangeComparator()); -#else - PresentationOrderSampleMap::iterator_range ret; - bool findfirst = false; - for (auto it=begin(); it!=end(); ++it) { - if (SamplePresentationTimeIsWithinRangeComparator()(*it, range)) { - if (!findfirst) { - findfirst = true; - ret.first = it; - } - } else if (findfirst) { - ret.second = it; - break; - } - } - return ret; -#endif } PresentationOrderSampleMap::iterator_range PresentationOrderSampleMap::findSamplesWithinPresentationRangeFromEnd(const MediaTime& beginTime, const MediaTime& endTime) diff --git a/webkit/WebCore/Modules/mediasource/SampleMap.h b/webkit/WebCore/Modules/mediasource/SampleMap.h index 75eaa9cb9..a607eb475 100644 --- a/webkit/WebCore/Modules/mediasource/SampleMap.h +++ b/webkit/WebCore/Modules/mediasource/SampleMap.h @@ -59,9 +59,6 @@ class PresentationOrderSampleMap { iterator findSampleWithPresentationTime(const MediaTime&); iterator findSampleContainingPresentationTime(const MediaTime&); -#if PLATFORM(WKC) - iterator findSampleAfterPresentationTime(const MediaTime&); -#endif iterator findSampleOnOrAfterPresentationTime(const MediaTime&); reverse_iterator reverseFindSampleContainingPresentationTime(const MediaTime&); reverse_iterator reverseFindSampleBeforePresentationTime(const MediaTime&); diff --git a/webkit/WebCore/Modules/mediasource/SourceBuffer.cpp b/webkit/WebCore/Modules/mediasource/SourceBuffer.cpp index cbd274949..30dd52b7f 100644 --- a/webkit/WebCore/Modules/mediasource/SourceBuffer.cpp +++ b/webkit/WebCore/Modules/mediasource/SourceBuffer.cpp @@ -1,7 +1,7 @@ /* * Copyright (C) 2013 Google Inc. All rights reserved. * Copyright (C) 2013-2014 Apple Inc. All rights reserved. - * Copyright (c) 2014-2015 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2014-2018 ACCESS CO., LTD. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -156,9 +156,6 @@ SourceBuffer::SourceBuffer(Ref&& sourceBufferPrivate, Media , m_groupStartTimestamp(MediaTime::invalidTime()) , m_groupEndTimestamp(MediaTime::zeroTime()) , m_buffered(TimeRanges::create()) -#if PLATFORM(WKC) - , m_gapRanges(TimeRanges::create()) -#endif , m_appendState(WaitingForSegment) , m_timeOfBufferingMonitor(monotonicallyIncreasingTime()) , m_bufferedSinceLastMonitor(0) @@ -855,87 +852,6 @@ void SourceBuffer::removeCodedFrames(const MediaTime& start, const MediaTime& en for (auto& iter : m_trackBufferMap) { TrackBuffer& trackBuffer = iter.value; -#define REPLACED_REMOVE_CODED_FRAMES - -#ifdef REPLACED_REMOVE_CODED_FRAMES - - MediaTime minSampleStartTime = MediaTime::invalidTime(); - MediaTime maxSampleEndTime = MediaTime::invalidTime(); - - PresentationOrderSampleMap::MapType erasedSamples; - PresentationOrderSampleMap::iterator_range iter_pair = trackBuffer.samples.presentationOrder().findSamplesBetweenPresentationTimes(start, end); - if (iter_pair.first != trackBuffer.samples.presentationOrder().end()) - erasedSamples.insert(iter_pair.first, iter_pair.second); - - for (PresentationOrderSampleMap::MapType::iterator erasedIt = erasedSamples.begin(), erasedItEnd = erasedSamples.end(); erasedIt != erasedItEnd; ++erasedIt) { - RefPtr& sample = erasedIt->second; - MediaTime sampleStartTime = sample->presentationTime(); - MediaTime sampleEndTime = sample->presentationTime() + sample->duration(); - - if (sampleEndTime < start || end < sampleStartTime) { // MediaSample is not overlapped to [start, end] - continue; - } - - // Remove sample from trackBuffer.samples - trackBuffer.samples.removeSample(sample.get()); - - if (minSampleStartTime.isInvalid() || sampleStartTime < minSampleStartTime) { - minSampleStartTime = sampleStartTime; - } - - if (maxSampleEndTime.isInvalid() || sampleEndTime > maxSampleEndTime) { - maxSampleEndTime = sampleEndTime; - } - } - - if (minSampleStartTime.isInvalid() || maxSampleEndTime.isInvalid()) { - continue; - } - - RefPtr erasedRanges = TimeRanges::create(); - MediaTime microsecond(1, 1000000); - - // Remove gap filling ranges from m_buffered - ExceptionCode ignoreException; - RefPtr erasedGapRanges = TimeRanges::create(); - for (unsigned i = 0, len = m_gapRanges->length(); i < len; i++) { - double gapStartTime = m_gapRanges->start(i, ignoreException); - double gapEndTime = m_gapRanges->end(i, ignoreException); - - if (gapEndTime < start.toDouble() || end.toDouble() < gapStartTime) { - continue; - } - - erasedRanges->add(gapStartTime, gapEndTime + microsecond.toDouble()); - erasedGapRanges->add(gapStartTime, gapEndTime + microsecond.toDouble()); - } - - erasedGapRanges->invert(); - m_gapRanges->intersectWith(*erasedGapRanges); - - erasedRanges->add(minSampleStartTime.toDouble(), (maxSampleEndTime + microsecond).toDouble()); - erasedRanges->invert(); - m_buffered->intersectWith(*erasedRanges); - - // Dirty workaround for precistion problem - // Remove small range less than 1 microsecond - // Rereference: https://github.com/WebKit/webkit/commit/18e2f5d6e6f00295b7859d75013e7f456bcfac52 - { - RefPtr _erasedRanges = TimeRanges::create(); - ExceptionCode ignoreException; - for (unsigned i = 0, len = m_buffered->length(); i < len; i++) { - double startTime = m_buffered->start(i, ignoreException); - double endTime = m_buffered->end(i, ignoreException); - if (endTime - startTime < (1.E-6)) { // Remove range which is less than 1 micro second - _erasedRanges->add(startTime, endTime); // 1.E-6 is fudge factor - } - } - _erasedRanges->invert(); - m_buffered->intersectWith(*_erasedRanges); - } - -#else // !REPLACED_REMOVE_CODED_FRAMES - // 3.1. Let remove end timestamp be the current value of duration // 3.2 If this track buffer has a random access point timestamp that is greater than or equal to end, then update // remove end timestamp to that random access point timestamp. @@ -978,62 +894,9 @@ void SourceBuffer::removeCodedFrames(const MediaTime& start, const MediaTime& en trackBuffer.needsReenqueueing = true; } -#if PLATFORM(WKC) - // Remove gap filling ranges from m_buffered - RefPtr erasedGapRanges = TimeRanges::create(); - ExceptionCode ignoreException; - - double startTime = erasedRanges->start(0, ignoreException); - double endTime = erasedRanges->end(erasedRanges->length() - 1, ignoreException); - for (unsigned i = 0, len = m_gapRanges->length(); i < len; i++) { - double gapStartTime = m_gapRanges->start(i, ignoreException); - double gapEndTime = m_gapRanges->end(i, ignoreException); - - if (startTime <= gapStartTime && gapEndTime < endTime) { - // gap range is inside (startTime, endTime) - erasedRanges->add(gapStartTime, gapEndTime); - erasedGapRanges->add(gapStartTime, gapEndTime); - } else if (gapStartTime <= startTime && endTime < gapEndTime) { - // gap range includes (startTime, endTime) - erasedRanges->add(startTime, endTime); - erasedGapRanges->add(startTime, endTime); - } else if (gapStartTime <= startTime && startTime < gapEndTime) { - // startTime is on gap range. - erasedRanges->add(startTime, gapEndTime); - erasedGapRanges->add(startTime, gapEndTime); - } else if (gapStartTime <= endTime && endTime < gapEndTime) { - // endTime is on gap range. - erasedRanges->add(gapStartTime, endTime); - erasedGapRanges->add(gapStartTime, endTime); - } - } - erasedGapRanges->invert(); - m_gapRanges->intersectWith(*erasedGapRanges); -#endif - erasedRanges->invert(); m_buffered->intersectWith(*erasedRanges); -#if PLATFORM(WKC) - // Dirty workaround for precistion problem - // Remove small range less than 1 microsecond - // Rereference: https://github.com/WebKit/webkit/commit/18e2f5d6e6f00295b7859d75013e7f456bcfac52 - { - RefPtr erasedRanges = TimeRanges::create(); - for (unsigned i = 0, len = m_buffered->length(); i < len; i++) { - double startTime = m_buffered->start(i, ignoreException); - double endTime = m_buffered->end(i, ignoreException); - if (endTime - startTime < (1.E-6)) { // Remove range is less than 1 micro second - erasedRanges->add(startTime, endTime); // 1.E-6 is fudge factor - } - } - erasedRanges->invert(); - m_buffered->intersectWith(*erasedRanges); - } -#endif - -#endif // REPLACED_REMOVE_CODED_FRAMES - // 3.4 If this object is in activeSourceBuffers, the current playback position is greater than or equal to start // and less than the remove end timestamp, and HTMLMediaElement.readyState is greater than HAVE_METADATA, then set // the HTMLMediaElement.readyState attribute to HAVE_METADATA and stall playback. @@ -1873,7 +1736,6 @@ void SourceBuffer::sourceBufferPrivateDidReceiveSample(SourceBufferPrivate*, Pas trackBuffer.highestPresentationTimestamp < presentationTimestamp && presentationTimestamp <= (trackBuffer.highestPresentationTimestamp + trackBuffer.lastFrameDuration)) { m_buffered->add(trackBuffer.highestPresentationTimestamp.toDouble(), (presentationTimestamp + microsecond).toDouble()); - m_gapRanges->add(trackBuffer.highestPresentationTimestamp.toDouble(), (presentationTimestamp + microsecond).toDouble()); // Keep track inserted gap fill } #endif @@ -1890,7 +1752,11 @@ void SourceBuffer::sourceBufferPrivateDidReceiveSample(SourceBufferPrivate*, Pas // to the decoded duration. When comparing deltas between decode timestamps, the decode duration, not the presentation. if (trackBuffer.lastDecodeTimestamp.isValid()) { MediaTime lastDecodeDuration = decodeTimestamp - trackBuffer.lastDecodeTimestamp; +#if PLATFORM(WKC) + if (lastDecodeDuration > trackBuffer.greatestDecodeDuration || trackBuffer.greatestDecodeDuration.isInvalid()) +#else if (lastDecodeDuration > trackBuffer.greatestDecodeDuration) +#endif trackBuffer.greatestDecodeDuration = lastDecodeDuration; } @@ -1917,20 +1783,6 @@ void SourceBuffer::sourceBufferPrivateDidReceiveSample(SourceBufferPrivate*, Pas m_buffered->add(presentationTimestamp.toDouble(), (presentationTimestamp + frameDuration + microsecond).toDouble()); m_bufferedSinceLastMonitor += frameDuration.toDouble(); - -#if PLATFORM(WKC) - // Force GAP filling: find all gap smaller than frame and then fill it - for (unsigned i = 0, len = m_buffered->length() - 1; i < len; i++) { - ExceptionCode ignoreException; - double rangeEndTime = m_buffered->end(i, ignoreException); - double nextRangeStartTime = m_buffered->start(i + 1, ignoreException); - if (nextRangeStartTime - rangeEndTime <= frameDuration.toDouble()) { // Assume that frame size in Source Buffer is fixed size - m_buffered->add(rangeEndTime, nextRangeStartTime + microsecond.toDouble()); - m_gapRanges->add(rangeEndTime, nextRangeStartTime + microsecond.toDouble()); // Keep track inserted gap fill - } - } -#endif - break; } while (1); diff --git a/webkit/WebCore/Modules/mediasource/SourceBuffer.h b/webkit/WebCore/Modules/mediasource/SourceBuffer.h index 3339634a0..7561147cc 100644 --- a/webkit/WebCore/Modules/mediasource/SourceBuffer.h +++ b/webkit/WebCore/Modules/mediasource/SourceBuffer.h @@ -1,7 +1,7 @@ /* * Copyright (C) 2013 Google Inc. All rights reserved. * Copyright (C) 2013-2014 Apple Inc. All rights reserved. - * Copyright (c) 2014 ACCESS CO., LTD. All rights reserved. + * Copyright (c) 2014-2018 ACCESS CO., LTD. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -231,10 +231,6 @@ class SourceBuffer final : public RefCounted, public ActiveDOMObje HashMap m_trackBufferMap; RefPtr m_buffered; -#if PLATFORM(WKC) - RefPtr m_gapRanges; -#endif - enum AppendStateType { WaitingForSegment, ParsingInitSegment, ParsingMediaSegment }; AppendStateType m_appendState; diff --git a/webkit/WebCore/Modules/webaudio/RealtimeAnalyser.cpp b/webkit/WebCore/Modules/webaudio/RealtimeAnalyser.cpp index 035dc2b20..ce1ca35b0 100644 --- a/webkit/WebCore/Modules/webaudio/RealtimeAnalyser.cpp +++ b/webkit/WebCore/Modules/webaudio/RealtimeAnalyser.cpp @@ -31,7 +31,10 @@ #include "AudioBus.h" #include "AudioUtilities.h" #include "VectorMath.h" -#include +#include +#if PLATFORM(WKC) +#include +#endif #include #include #include diff --git a/webkit/WebCore/dom/Document.cpp b/webkit/WebCore/dom/Document.cpp index adfa0f535..902966308 100644 --- a/webkit/WebCore/dom/Document.cpp +++ b/webkit/WebCore/dom/Document.cpp @@ -2205,6 +2205,9 @@ void Document::destroyRenderTree() { ASSERT(hasLivingRenderTree()); + // Prevent Widget tree changes from committing until the RenderView is dead and gone. + WidgetHierarchyUpdatesSuspensionScope suspendWidgetHierarchyUpdates; + TemporaryChange change(m_renderTreeBeingDestroyed, true); if (this == &topDocument()) @@ -2220,10 +2223,6 @@ void Document::destroyRenderTree() setFullScreenRenderer(nullptr); #endif - m_hoveredElement = nullptr; - m_focusedElement = nullptr; - m_activeElement = nullptr; - if (m_documentElement) Style::detachRenderTree(*m_documentElement); @@ -5563,6 +5562,10 @@ void Document::requestFullScreenForElement(Element* element, unsigned short flag // an event named fullscreenerror with its bubbles attribute set to true on the context object's // node document: + // Don't allow fullscreen if document is hidden. + if (!page() || !page()->chrome().client().isViewVisible()) + break; + // The context object is not in a document. if (!element->inDocument()) break; diff --git a/webkit/WebCore/html/HTMLInputElement.cpp b/webkit/WebCore/html/HTMLInputElement.cpp index 2632a4955..a2e9b5492 100644 --- a/webkit/WebCore/html/HTMLInputElement.cpp +++ b/webkit/WebCore/html/HTMLInputElement.cpp @@ -102,7 +102,6 @@ HTMLInputElement::HTMLInputElement(const QualifiedName& tagName, Document& docum : HTMLTextFormControlElement(tagName, document, form) , m_size(defaultSize) , m_maxLength(maximumLength) - , m_maxResults(-1) , m_isChecked(false) , m_reflectsCheckedAttribute(true) , m_isIndeterminate(false) @@ -122,10 +121,12 @@ HTMLInputElement::HTMLInputElement(const QualifiedName& tagName, Document& docum #if ENABLE(TOUCH_EVENTS) , m_hasTouchEventHandler(false) #endif +{ // m_inputType is lazily created when constructed by the parser to avoid constructing unnecessarily a text inputType and // its shadow subtree, just to destroy them when the |type| attribute gets set by the parser to something else than 'text'. - , m_inputType(createdByParser ? nullptr : InputType::createText(*this)) -{ + if (!createdByParser) + m_inputType = InputType::createText(*this); + ASSERT(hasTagName(inputTag) || hasTagName(isindexTag)); setHasCustomStyleResolveCallbacks(); } @@ -148,7 +149,8 @@ HTMLImageLoader& HTMLInputElement::ensureImageLoader() void HTMLInputElement::didAddUserAgentShadowRoot(ShadowRoot*) { - m_inputType->createShadowSubtree(); + Ref protectedInputType(*m_inputType); + protectedInputType->createShadowSubtree(); updateInnerTextElementEditability(); } @@ -585,7 +587,8 @@ bool HTMLInputElement::canHaveSelection() const void HTMLInputElement::accessKeyAction(bool sendMouseEvents) { - m_inputType->accessKeyAction(sendMouseEvents); + Ref protectedInputType(*m_inputType); + protectedInputType->accessKeyAction(sendMouseEvents); } bool HTMLInputElement::isPresentationAttribute(const QualifiedName& name) const @@ -642,6 +645,7 @@ inline void HTMLInputElement::initializeInputType() void HTMLInputElement::parseAttribute(const QualifiedName& name, const AtomicString& value) { ASSERT(m_inputType); + Ref protectedInputType(*m_inputType); if (name == nameAttr) { removeFromRadioButtonGroup(); @@ -840,6 +844,7 @@ void HTMLInputElement::setActivatedSubmit(bool flag) bool HTMLInputElement::appendFormData(FormDataList& encoding, bool multipart) { + Ref protectedInputType(*m_inputType); return m_inputType->isFormDataAppendable() && m_inputType->appendFormData(encoding, multipart); } diff --git a/webkit/WebCore/html/HTMLInputElement.h b/webkit/WebCore/html/HTMLInputElement.h index 9decbd0f1..e1db3fff8 100644 --- a/webkit/WebCore/html/HTMLInputElement.h +++ b/webkit/WebCore/html/HTMLInputElement.h @@ -438,7 +438,7 @@ class HTMLInputElement : public HTMLTextFormControlElement { String m_valueIfDirty; int m_size; int m_maxLength; - short m_maxResults; + short m_maxResults { -1 }; bool m_isChecked : 1; bool m_reflectsCheckedAttribute : 1; bool m_isIndeterminate : 1; @@ -458,7 +458,7 @@ class HTMLInputElement : public HTMLTextFormControlElement { #if ENABLE(TOUCH_EVENTS) bool m_hasTouchEventHandler : 1; #endif - std::unique_ptr m_inputType; + RefPtr m_inputType; // The ImageLoader must be owned by this element because the loader code assumes // that it lives as long as its owning element lives. If we move the loader into // the ImageInput object we may delete the loader while this element lives on. diff --git a/webkit/WebCore/html/HTMLMediaElement.cpp b/webkit/WebCore/html/HTMLMediaElement.cpp index 0437864ae..be012e183 100644 --- a/webkit/WebCore/html/HTMLMediaElement.cpp +++ b/webkit/WebCore/html/HTMLMediaElement.cpp @@ -5594,6 +5594,9 @@ void HTMLMediaElement::enterFullscreen(VideoFullscreenMode mode) if (m_videoFullscreenMode == mode) return; + if (!document().page() || !document().page()->chrome().client().isViewVisible()) { + return; + } #if ENABLE(FULLSCREEN_API) if (document().settings() && document().settings()->fullScreenEnabled()) { @@ -5605,7 +5608,7 @@ void HTMLMediaElement::enterFullscreen(VideoFullscreenMode mode) fullscreenModeChanged(mode); if (hasMediaControls()) mediaControls()->enteredFullscreen(); - if (document().page() && is(*this)) { + if (is(*this)) { HTMLVideoElement& asVideo = downcast(*this); if (document().page()->chrome().client().supportsVideoFullscreen()) { document().page()->chrome().client().enterVideoFullscreenForVideoElement(asVideo, m_videoFullscreenMode); @@ -5627,7 +5630,9 @@ void HTMLMediaElement::exitFullscreen() if (document().settings() && document().settings()->fullScreenEnabled()) { if (document().webkitIsFullScreen() && document().webkitCurrentFullScreenElement() == this) document().webkitCancelFullScreen(); - return; + + if (m_videoFullscreenMode == VideoFullscreenModeStandard) + return; } #endif ASSERT(m_videoFullscreenMode != VideoFullscreenModeNone); diff --git a/webkit/WebCore/html/HTMLMediaElement.h b/webkit/WebCore/html/HTMLMediaElement.h index 437ee1ae5..484733e87 100644 --- a/webkit/WebCore/html/HTMLMediaElement.h +++ b/webkit/WebCore/html/HTMLMediaElement.h @@ -371,6 +371,7 @@ class HTMLMediaElement using HTMLElement::scriptExecutionContext; bool hasSingleSecurityOrigin() const { return !m_player || m_player->hasSingleSecurityOrigin(); } + bool didPassCORSAccessCheck() const { return m_player && m_player->didPassCORSAccessCheck(); } WEBCORE_EXPORT virtual bool isFullscreen() const override; void toggleFullscreenState(); diff --git a/webkit/WebCore/html/InputType.cpp b/webkit/WebCore/html/InputType.cpp index e52cbff3b..1458ff4dd 100644 --- a/webkit/WebCore/html/InputType.cpp +++ b/webkit/WebCore/html/InputType.cpp @@ -2,7 +2,7 @@ * Copyright (C) 1999 Lars Knoll (knoll@kde.org) * (C) 1999 Antti Koivisto (koivisto@kde.org) * (C) 2001 Dirk Mueller (mueller@kde.org) - * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013, 2014 Apple Inc. All rights reserved. + * Copyright (C) 2004-2018 Apple Inc. All rights reserved. * (C) 2006 Alexey Proskuryakov (ap@nypop.com) * Copyright (C) 2007 Samuel Weinig (sam@webkit.org) * Copyright (C) 2009, 2010, 2011, 2012 Google Inc. All rights reserved. @@ -85,13 +85,13 @@ using namespace HTMLNames; typedef bool (RuntimeEnabledFeatures::*InputTypeConditionalFunction)() const; typedef const AtomicString& (*InputTypeNameFunction)(); -typedef std::unique_ptr (*InputTypeFactoryFunction)(HTMLInputElement&); +typedef Ref(*InputTypeFactoryFunction)(HTMLInputElement&); typedef HashMap InputTypeFactoryMap; template -static std::unique_ptr createInputType(HTMLInputElement& element) +static Ref createInputType(HTMLInputElement& element) { - return std::make_unique(element); + return adoptRef(*new T(element)); } static void populateInputTypeFactoryMap(InputTypeFactoryMap& map) @@ -147,7 +147,7 @@ static void populateInputTypeFactoryMap(InputTypeFactoryMap& map) } } -std::unique_ptr InputType::create(HTMLInputElement& element, const AtomicString& typeName) +Ref InputType::create(HTMLInputElement& element, const AtomicString& typeName) { #if !PLATFORM(WKC) static NeverDestroyed factoryMap; @@ -158,7 +158,7 @@ std::unique_ptr InputType::create(HTMLInputElement& element, const At if (auto factory = factoryMap.get().get(typeName)) return factory(element); } - return std::make_unique(element); + return adoptRef(*new TextInputType(element)); #else WKC_DEFINE_STATIC_PTR(InputTypeFactoryMap*, factoryMap, 0); if (!factoryMap) @@ -170,13 +170,13 @@ std::unique_ptr InputType::create(HTMLInputElement& element, const At if (auto factory = factoryMap->get(typeName)) return factory(element); } - return std::make_unique(element); + return adoptRef(*new TextInputType(element)); #endif } -std::unique_ptr InputType::createText(HTMLInputElement& element) +Ref InputType::createText(HTMLInputElement& element) { - return std::make_unique(element); + return adoptRef(*new TextInputType(element)); } InputType::~InputType() diff --git a/webkit/WebCore/html/InputType.h b/webkit/WebCore/html/InputType.h index 59aa5cf8c..8a00ca6dd 100644 --- a/webkit/WebCore/html/InputType.h +++ b/webkit/WebCore/html/InputType.h @@ -1,6 +1,6 @@ /* * Copyright (C) 2010 Google Inc. All rights reserved. - * Copyright (C) 2011, 2014 Apple Inc. All rights reserved. + * Copyright (C) 2011-2018 Apple Inc. All rights reserved. * Copyright (C) 2012 Samsung Electronics. All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,6 +38,7 @@ #include "StepRange.h" #include #include +#include #include #include @@ -72,13 +73,13 @@ typedef int ExceptionCode; // An InputType object represents the type-specific part of an HTMLInputElement. // Do not expose instances of InputType and classes derived from it to classes // other than HTMLInputElement. -class InputType { +class InputType : public RefCounted { WTF_MAKE_NONCOPYABLE(InputType); WTF_MAKE_FAST_ALLOCATED; public: - static std::unique_ptr create(HTMLInputElement&, const AtomicString&); - static std::unique_ptr createText(HTMLInputElement&); + static Ref create(HTMLInputElement&, const AtomicString&); + static Ref createText(HTMLInputElement&); virtual ~InputType(); static bool themeSupportsDataListUI(InputType*); diff --git a/webkit/WebCore/page/ChromeClient.h b/webkit/WebCore/page/ChromeClient.h index 8d77b4b9d..33807f094 100644 --- a/webkit/WebCore/page/ChromeClient.h +++ b/webkit/WebCore/page/ChromeClient.h @@ -463,6 +463,8 @@ class WEBCORE_EXPORT ChromeClient { virtual void dispatchMetaFocusRingVisibilityDidChange(const String&) const { }; #endif + virtual bool isViewVisible() { return true; } + protected: virtual ~ChromeClient() { } }; diff --git a/webkit/WebCore/page/FocusController.cpp b/webkit/WebCore/page/FocusController.cpp index ceb4e4269..03a9c38cb 100644 --- a/webkit/WebCore/page/FocusController.cpp +++ b/webkit/WebCore/page/FocusController.cpp @@ -1349,6 +1349,19 @@ void FocusController::findFocusableNodeInDirection(Node* container, Node* starti m_lastEntryRect = closest.entryRect; m_lastEntryPoint = closest.entryPoint; m_lastDirection = direction; + // Adjust so that the entry point is at the the center of the rectangle in the direction. + switch (direction) { + case FocusDirectionUp: + case FocusDirectionDown: + m_lastEntryPoint.setY(m_lastEntryRect.center().y()); + break; + case FocusDirectionLeft: + case FocusDirectionRight: + m_lastEntryPoint.setX(m_lastEntryRect.center().x()); + break; + default: + break; + } } } @@ -1642,9 +1655,8 @@ FocusController::findNearestFocusableElementFromPoint(Element* start, const Layo e = child; } else if (isScrollableContainerNode(e) && !e->renderer()->isTextArea()) { Element* child = ElementTraversal::firstChild(*e); - if (!child) - continue; - e = child; + if (child) + e = child; } FocusCandidate candidate = FocusCandidate(e, FocusDirectionDown); diff --git a/webkit/WebCore/page/FocusController.h b/webkit/WebCore/page/FocusController.h index ea4aadfb7..b81efbd64 100644 --- a/webkit/WebCore/page/FocusController.h +++ b/webkit/WebCore/page/FocusController.h @@ -102,6 +102,7 @@ class FocusController { Element* findNearestFocusableElementFromPoint(const IntPoint& point, const IntRect* scope = 0); // get child element preferentially Element* findNearestClickableElementFromPoint(const IntPoint& point, const IntRect* scope = 0); + LayoutPoint getLastEntryPoint() const { return m_lastEntryPoint; } #endif private: diff --git a/webkit/WebCore/page/SpatialNavigation.cpp b/webkit/WebCore/page/SpatialNavigation.cpp index 79ad48a91..1d833033a 100644 --- a/webkit/WebCore/page/SpatialNavigation.cpp +++ b/webkit/WebCore/page/SpatialNavigation.cpp @@ -1507,7 +1507,8 @@ void entryAndExitPointsForDirection(FocusDirection direction, const LayoutRect& entryPoint.setY(potentialRect.y()); } else { #if PLATFORM(WKC) - exitPoint.setY((std::max(startingRect.y(), potentialRect.y()) + std::min(startingRect.maxY(), potentialRect.maxY())) / 2); + LayoutUnit y = (std::max(startingRect.y(), potentialRect.y()) + std::min(startingRect.maxY(), potentialRect.maxY())) / 2; + exitPoint.setY(y.floor()); #else exitPoint.setY(std::max(startingRect.y(), potentialRect.y())); #endif @@ -1524,7 +1525,8 @@ void entryAndExitPointsForDirection(FocusDirection direction, const LayoutRect& entryPoint.setX(potentialRect.x()); } else { #if PLATFORM(WKC) - exitPoint.setX((std::max(startingRect.x(), potentialRect.x()) + std::min(startingRect.maxX(), potentialRect.maxX())) / 2); + LayoutUnit x = (std::max(startingRect.x(), potentialRect.x()) + std::min(startingRect.maxX(), potentialRect.maxX())) / 2; + exitPoint.setX(x.floor()); #else exitPoint.setX(std::max(startingRect.x(), potentialRect.x())); #endif diff --git a/webkit/WebCore/page/animation/AnimationBase.h b/webkit/WebCore/page/animation/AnimationBase.h index 14591993f..462144e0d 100644 --- a/webkit/WebCore/page/animation/AnimationBase.h +++ b/webkit/WebCore/page/animation/AnimationBase.h @@ -229,7 +229,7 @@ class AnimationBase : public RefCounted { virtual bool startAnimation(double /*timeOffset*/) { return false; } // timeOffset is the time at which the animation is being paused. virtual void pauseAnimation(double /*timeOffset*/) { } - virtual void endAnimation() { } + virtual void endAnimation(bool /*fillingForwards*/ = false) { } void goIntoEndingOrLoopingState(); diff --git a/webkit/WebCore/page/animation/ImplicitAnimation.cpp b/webkit/WebCore/page/animation/ImplicitAnimation.cpp index 9ec57b4ce..5b8c4ba63 100644 --- a/webkit/WebCore/page/animation/ImplicitAnimation.cpp +++ b/webkit/WebCore/page/animation/ImplicitAnimation.cpp @@ -155,7 +155,7 @@ void ImplicitAnimation::pauseAnimation(double timeOffset) setNeedsStyleRecalc(m_object->element()); } -void ImplicitAnimation::endAnimation() +void ImplicitAnimation::endAnimation(bool) { if (m_object && m_object->isComposited()) downcast(*m_object).transitionFinished(m_animatingProperty); diff --git a/webkit/WebCore/page/animation/ImplicitAnimation.h b/webkit/WebCore/page/animation/ImplicitAnimation.h index a9a30f1e2..ac42eb414 100644 --- a/webkit/WebCore/page/animation/ImplicitAnimation.h +++ b/webkit/WebCore/page/animation/ImplicitAnimation.h @@ -52,7 +52,7 @@ class ImplicitAnimation : public AnimationBase { virtual void onAnimationEnd(double elapsedTime) override; virtual bool startAnimation(double timeOffset) override; virtual void pauseAnimation(double timeOffset) override; - virtual void endAnimation() override; + virtual void endAnimation(bool fillingForwards = false) override; virtual bool animate(CompositeAnimation*, RenderElement*, const RenderStyle* currentStyle, RenderStyle* targetStyle, RefPtr& animatedStyle) override; virtual void getAnimatedStyle(RefPtr& animatedStyle) override; diff --git a/webkit/WebCore/page/animation/KeyframeAnimation.cpp b/webkit/WebCore/page/animation/KeyframeAnimation.cpp index 0e0947b1f..618eaff84 100644 --- a/webkit/WebCore/page/animation/KeyframeAnimation.cpp +++ b/webkit/WebCore/page/animation/KeyframeAnimation.cpp @@ -263,7 +263,7 @@ void KeyframeAnimation::pauseAnimation(double timeOffset) setNeedsStyleRecalc(m_object->element()); } -void KeyframeAnimation::endAnimation() +void KeyframeAnimation::endAnimation(bool fillingForwards) { if (!m_object) return; @@ -272,7 +272,7 @@ void KeyframeAnimation::endAnimation() downcast(*m_object).animationFinished(m_keyframes.animationName()); // Restore the original (unanimated) style - if (!paused()) + if (!fillingForwards && !paused()) setNeedsStyleRecalc(m_object->element()); } @@ -294,10 +294,7 @@ void KeyframeAnimation::onAnimationIteration(double elapsedTime) void KeyframeAnimation::onAnimationEnd(double elapsedTime) { sendAnimationEvent(eventNames().animationendEvent, elapsedTime); - // End the animation if we don't fill forwards. Forward filling - // animations are ended properly in the class destructor. - if (!m_animation->fillsForwards()) - endAnimation(); + endAnimation(m_animation->fillsForwards()); } bool KeyframeAnimation::sendAnimationEvent(const AtomicString& eventType, double elapsedTime) diff --git a/webkit/WebCore/page/animation/KeyframeAnimation.h b/webkit/WebCore/page/animation/KeyframeAnimation.h index f700eaf38..4a449bdaf 100644 --- a/webkit/WebCore/page/animation/KeyframeAnimation.h +++ b/webkit/WebCore/page/animation/KeyframeAnimation.h @@ -69,7 +69,7 @@ class KeyframeAnimation final : public AnimationBase { virtual void onAnimationEnd(double elapsedTime) override; virtual bool startAnimation(double timeOffset) override; virtual void pauseAnimation(double timeOffset) override; - virtual void endAnimation() override; + virtual void endAnimation(bool fillingForwards = false) override; virtual void overrideAnimations() override; virtual void resumeOverriddenAnimations() override; diff --git a/webkit/WebCore/platform/CalculationValue.cpp b/webkit/WebCore/platform/CalculationValue.cpp index 3bc3c3a68..8b2f22fc7 100644 --- a/webkit/WebCore/platform/CalculationValue.cpp +++ b/webkit/WebCore/platform/CalculationValue.cpp @@ -96,19 +96,19 @@ bool CalcExpressionLength::operator==(const CalcExpressionNode& other) const return other.type() == CalcExpressionNodeLength && *this == toCalcExpressionLength(other); } -CalcExpressionBlendLength::CalcExpressionBlendLength(Length from, Length to, float progress) - : CalcExpressionNode(CalcExpressionNodeBlendLength) - , m_from(from) - , m_to(to) - , m_progress(progress) -{ - // Flatten nesting of CalcExpressionBlendLength as a speculative fix for rdar://problem/30533005. - // CalcExpressionBlendLength is only used as a result of animation and they don't nest in normal cases. - if (m_from.isCalculated() && m_from.calculationValue().expression().type() == CalcExpressionNodeBlendLength) - m_from = toCalcExpressionBlendLength(m_from.calculationValue().expression()).from(); - if (m_to.isCalculated() && m_to.calculationValue().expression().type() == CalcExpressionNodeBlendLength) - m_to = toCalcExpressionBlendLength(m_to.calculationValue().expression()).to(); -} +CalcExpressionBlendLength::CalcExpressionBlendLength(Length from, Length to, float progress) + : CalcExpressionNode(CalcExpressionNodeBlendLength) + , m_from(from) + , m_to(to) + , m_progress(progress) +{ + // Flatten nesting of CalcExpressionBlendLength as a speculative fix for rdar://problem/30533005. + // CalcExpressionBlendLength is only used as a result of animation and they don't nest in normal cases. + if (m_from.isCalculated() && m_from.calculationValue().expression().type() == CalcExpressionNodeBlendLength) + m_from = toCalcExpressionBlendLength(m_from.calculationValue().expression()).from(); + if (m_to.isCalculated() && m_to.calculationValue().expression().type() == CalcExpressionNodeBlendLength) + m_to = toCalcExpressionBlendLength(m_to.calculationValue().expression()).to(); +} float CalcExpressionBlendLength::evaluate(float maxValue) const { diff --git a/webkit/WebCore/platform/ScrollView.cpp b/webkit/WebCore/platform/ScrollView.cpp index f66b61d17..61cf56f30 100644 --- a/webkit/WebCore/platform/ScrollView.cpp +++ b/webkit/WebCore/platform/ScrollView.cpp @@ -56,6 +56,9 @@ ScrollView::ScrollView() , m_paintsEntireContents(false) , m_clipsRepaints(true) , m_delegatesScrolling(false) +#if PLATFORM(WKC) + , m_weakPtrFactory(this) +#endif { } diff --git a/webkit/WebCore/platform/ScrollView.h b/webkit/WebCore/platform/ScrollView.h index 3f89b0193..b64899d5a 100644 --- a/webkit/WebCore/platform/ScrollView.h +++ b/webkit/WebCore/platform/ScrollView.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2006, 2007, 2008, 2013, 2014 Apple Inc. All rights reserved. + * Copyright (C) 2004-2018 Apple Inc. All rights reserved. * Copyright (C) 2009 Holger Hans Peter Freyther * * Redistribution and use in source and binary forms, with or without @@ -35,6 +35,7 @@ #include "Widget.h" #include +#include #if PLATFORM(IOS) #ifdef __OBJC__ @@ -381,6 +382,12 @@ class ScrollView : public Widget, public ScrollableArea { WEBCORE_EXPORT void scrollPositionChangedViaPlatformWidget(const IntPoint& oldPosition, const IntPoint& newPosition); + auto& weakPtrFactory() const { return m_weakPtrFactory; } + +#if PLATFORM(WKC) + WeakPtr createWeakPtr() { return m_weakPtrFactory.createWeakPtr(); } +#endif + protected: ScrollView(); @@ -435,6 +442,8 @@ class ScrollView : public Widget, public ScrollableArea { ScrollbarMode m_horizontalScrollbarMode; ScrollbarMode m_verticalScrollbarMode; + WeakPtrFactory m_weakPtrFactory; + bool m_horizontalScrollbarLock; bool m_verticalScrollbarLock; diff --git a/webkit/WebCore/platform/Widget.cpp b/webkit/WebCore/platform/Widget.cpp index 9f1d01482..64549863e 100644 --- a/webkit/WebCore/platform/Widget.cpp +++ b/webkit/WebCore/platform/Widget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2006, 2010 Apple Inc. All rights reserved. + * Copyright (C) 2004-2018 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -34,7 +34,6 @@ namespace WebCore { void Widget::init(PlatformWidget widget) { - m_parent = 0; m_selfVisible = false; m_parentVisible = false; m_widget = widget; @@ -47,7 +46,11 @@ void Widget::setParent(ScrollView* view) ASSERT(!view || !m_parent); if (!view || !view->isVisible()) setParentVisible(false); - m_parent = view; +#if PLATFORM(WKC) + m_parent = view ? view->createWeakPtr() : WeakPtr{}; +#else + m_parent = view ? makeWeakPtr(*view) : nullptr; +#endif if (view && view->isVisible()) setParentVisible(true); } diff --git a/webkit/WebCore/platform/Widget.h b/webkit/WebCore/platform/Widget.h index fe5ac752b..6386772bd 100644 --- a/webkit/WebCore/platform/Widget.h +++ b/webkit/WebCore/platform/Widget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2006 Apple Inc. All rights reserved. + * Copyright (C) 2004-2018 Apple Inc. All rights reserved. * Copyright (C) 2008 Collabora Ltd. All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,6 +38,9 @@ #include #include #include +#if PLATFORM(WKC) +#include +#endif #if PLATFORM(COCOA) #include @@ -150,7 +153,7 @@ class Widget : public RefCounted { WEBCORE_EXPORT void removeFromParent(); WEBCORE_EXPORT virtual void setParent(ScrollView* view); - ScrollView* parent() const { return m_parent; } + ScrollView* parent() const { return m_parent.get(); } FrameView* root() const; virtual void handleEvent(Event*) { } @@ -212,7 +215,7 @@ class Widget : public RefCounted { static IntPoint convertFromContainingWindowToRoot(const Widget* rootWidget, const IntPoint&); private: - ScrollView* m_parent; + WeakPtr m_parent; #if !PLATFORM(COCOA) PlatformWidget m_widget; #else diff --git a/webkit/WebCore/platform/audio/Biquad.h b/webkit/WebCore/platform/audio/Biquad.h index f34286560..c4f570d3d 100644 --- a/webkit/WebCore/platform/audio/Biquad.h +++ b/webkit/WebCore/platform/audio/Biquad.h @@ -38,6 +38,9 @@ struct once_flag { private: unsigned long __state_; }; +#endif +#if PLATFORM(WKC) +#include #endif #include #include diff --git a/webkit/WebCore/platform/audio/FFTFrame.cpp b/webkit/WebCore/platform/audio/FFTFrame.cpp index 8e8aac336..3bc136b27 100644 --- a/webkit/WebCore/platform/audio/FFTFrame.cpp +++ b/webkit/WebCore/platform/audio/FFTFrame.cpp @@ -41,6 +41,9 @@ struct once_flag { private: unsigned long __state_; }; +#endif +#if PLATFORM(WKC) +#include #endif #include #include diff --git a/webkit/WebCore/platform/graphics/FontCache.cpp b/webkit/WebCore/platform/graphics/FontCache.cpp index 64349681d..e2fd74eec 100644 --- a/webkit/WebCore/platform/graphics/FontCache.cpp +++ b/webkit/WebCore/platform/graphics/FontCache.cpp @@ -417,11 +417,10 @@ RefPtr FontCache::fontForFamily(const FontDescription& fontDescription, co if (!m_purgeTimer.isActive()) m_purgeTimer.startOneShot(std::chrono::milliseconds::zero()); - FontPlatformData* platformData = getCachedFontPlatformData(fontDescription, family, checkingAlternateName); - if (!platformData) - return nullptr; + if (auto* platformData = getCachedFontPlatformData(fontDescription, family, checkingAlternateName)) + return fontForPlatformData(*platformData); - return fontForPlatformData(*platformData); + return nullptr; } Ref FontCache::fontForPlatformData(const FontPlatformData& platformData) diff --git a/webkit/WebCore/platform/graphics/FontCascade.cpp b/webkit/WebCore/platform/graphics/FontCascade.cpp index cece94b4d..b9cf4313b 100644 --- a/webkit/WebCore/platform/graphics/FontCascade.cpp +++ b/webkit/WebCore/platform/graphics/FontCascade.cpp @@ -36,6 +36,10 @@ #include #include +#if PLATFORM(WIN) +#include "UniscribeController.h" +#endif + using namespace WTF; using namespace Unicode; @@ -1385,7 +1389,7 @@ void FontCascade::drawGlyphBuffer(GraphicsContext* context, const TextRun& run, // Draw each contiguous run of glyphs that use the same font data. const Font* fontData = glyphBuffer.fontAt(0); - FloatSize offset = glyphBuffer.offsetAt(0); + // FIXME: Why do we subtract the initial advance's height but not its width??? FloatPoint startPoint(point.x(), point.y() - glyphBuffer.initialAdvance().height()); float nextX = startPoint.x() + glyphBuffer.advanceAt(0).width(); float nextY = startPoint.y() + glyphBuffer.advanceAt(0).height(); @@ -1396,9 +1400,8 @@ void FontCascade::drawGlyphBuffer(GraphicsContext* context, const TextRun& run, #endif while (nextGlyph < glyphBuffer.size()) { const Font* nextFontData = glyphBuffer.fontAt(nextGlyph); - FloatSize nextOffset = glyphBuffer.offsetAt(nextGlyph); - if (nextFontData != fontData || nextOffset != offset) { + if (nextFontData != fontData) { #if ENABLE(SVG_FONTS) if (renderingContext && fontData->isSVGFont()) renderingContext->drawSVGGlyphs(context, fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint); @@ -1408,7 +1411,6 @@ void FontCascade::drawGlyphBuffer(GraphicsContext* context, const TextRun& run, lastFrom = nextGlyph; fontData = nextFontData; - offset = nextOffset; startPoint.setX(nextX); startPoint.setY(nextY); } diff --git a/webkit/WebCore/platform/graphics/GlyphBuffer.h b/webkit/WebCore/platform/graphics/GlyphBuffer.h index d1502775e..d59da941f 100644 --- a/webkit/WebCore/platform/graphics/GlyphBuffer.h +++ b/webkit/WebCore/platform/graphics/GlyphBuffer.h @@ -27,8 +27,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef GlyphBuffer_h -#define GlyphBuffer_h +#pragma once #include "FloatSize.h" #include "Glyph.h" @@ -39,18 +38,11 @@ #include #endif -#if USE(CAIRO) -#include -#endif - namespace WebCore { class Font; -#if USE(CAIRO) -// FIXME: Why does Cairo use such a huge struct instead of just an offset into an array? -typedef cairo_glyph_t GlyphBufferGlyph; -#elif USE(WINGDI) +#if USE(WINGDI) typedef wchar_t GlyphBufferGlyph; #else typedef Glyph GlyphBufferGlyph; @@ -89,9 +81,6 @@ class GlyphBuffer { m_advances.clear(); if (m_offsetsInString) m_offsetsInString->clear(); -#if PLATFORM(WIN) - m_offsets.clear(); -#endif } GlyphBufferGlyph* glyphs(int from) { return m_glyphs.data() + from; } @@ -106,79 +95,34 @@ class GlyphBuffer { Glyph glyphAt(int index) const { -#if USE(CAIRO) - return m_glyphs[index].index; -#else return m_glyphs[index]; -#endif } GlyphBufferAdvance advanceAt(int index) const { return m_advances[index]; } - - FloatSize offsetAt(int index) const - { -#if PLATFORM(WIN) - return m_offsets[index]; -#else - UNUSED_PARAM(index); - return FloatSize(); -#endif - } static const unsigned noOffset = UINT_MAX; - void add(Glyph glyph, const Font* font, float width, unsigned offsetInString = noOffset, const FloatSize* offset = 0) + void add(Glyph glyph, const Font* font, float width, unsigned offsetInString = noOffset) { - m_font.append(font); - -#if USE(CAIRO) - cairo_glyph_t cairoGlyph; - cairoGlyph.index = glyph; - m_glyphs.append(cairoGlyph); -#else - m_glyphs.append(glyph); -#endif - -#if USE(CG) - CGSize advance = { width, 0 }; - m_advances.append(advance); -#else - m_advances.append(FloatSize(width, 0)); -#endif + GlyphBufferAdvance advance; + advance.setWidth(width); + advance.setHeight(0); -#if PLATFORM(WIN) - if (offset) - m_offsets.append(*offset); - else - m_offsets.append(FloatSize()); -#else - UNUSED_PARAM(offset); -#endif - - if (offsetInString != noOffset && m_offsetsInString) - m_offsetsInString->append(offsetInString); + add(glyph, font, advance, offsetInString); } -#if !USE(WINGDI) void add(Glyph glyph, const Font* font, GlyphBufferAdvance advance, unsigned offsetInString = noOffset) { m_font.append(font); -#if USE(CAIRO) - cairo_glyph_t cairoGlyph; - cairoGlyph.index = glyph; - m_glyphs.append(cairoGlyph); -#else m_glyphs.append(glyph); -#endif m_advances.append(advance); if (offsetInString != noOffset && m_offsetsInString) m_offsetsInString->append(offsetInString); } -#endif void reverse(int from, int length) { @@ -193,6 +137,14 @@ class GlyphBuffer { lastAdvance.setWidth(lastAdvance.width() + width); } + void expandLastAdvance(GlyphBufferAdvance expansion) + { + ASSERT(!isEmpty()); + GlyphBufferAdvance& lastAdvance = m_advances.last(); + lastAdvance.setWidth(lastAdvance.width() + expansion.width()); + lastAdvance.setHeight(lastAdvance.height() + expansion.height()); + } + void saveOffsetsInString() { m_offsetsInString.reset(new Vector()); @@ -212,9 +164,6 @@ class GlyphBuffer { m_advances.shrink(truncationPoint); if (m_offsetsInString) m_offsetsInString->shrink(truncationPoint); -#if PLATFORM(WIN) - m_offsets.shrink(truncationPoint); -#endif } private: @@ -231,12 +180,6 @@ class GlyphBuffer { GlyphBufferAdvance s = m_advances[index1]; m_advances[index1] = m_advances[index2]; m_advances[index2] = s; - -#if PLATFORM(WIN) - FloatSize offset = m_offsets[index1]; - m_offsets[index1] = m_offsets[index2]; - m_offsets[index2] = offset; -#endif } Vector m_font; @@ -244,10 +187,6 @@ class GlyphBuffer { Vector m_advances; GlyphBufferAdvance m_initialAdvance; std::unique_ptr> m_offsetsInString; -#if PLATFORM(WIN) - Vector m_offsets; -#endif }; } -#endif diff --git a/webkit/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp b/webkit/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp index b9c27d255..cc524ec68 100644 --- a/webkit/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp +++ b/webkit/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp @@ -886,6 +886,8 @@ bool GraphicsLayerCA::animationCanBeAccelerated(const KeyframeValueList& valueLi bool GraphicsLayerCA::addAnimation(const KeyframeValueList& valueList, const FloatSize& boxSize, const Animation* anim, const String& animationName, double timeOffset) { + LOG(Animations, "GraphicsLayerCA %p %llu addAnimation %s (can be accelerated %d)", this, primaryLayerID(), animationName.utf8().data(), animationCanBeAccelerated(valueList, anim)); + ASSERT(!animationName.isEmpty()); if (!animationCanBeAccelerated(valueList, anim)) @@ -2028,6 +2030,21 @@ void GraphicsLayerCA::updateCoverage() backing->setCoverageRect(m_coverageRect); } +#if !LOG_DISABLED + if (requiresBacking) { + auto reasonForBacking = [&]() -> const char* { + if (m_intersectsCoverageRect) + return "intersectsCoverageRect"; + + if (commitState.ancestorWithTransformAnimationIntersectsCoverageRect) + return "ancestor with transform"; + + return "has transform animation with unknown extent"; + }; + LOG_WITH_STREAM(Compositing, stream << "GraphicsLayerCA " << this << " id " << primaryLayerID() << " setBackingStoreAttached: " << requiresBacking << " (" << reasonForBacking() << ")"); + } +#endif + m_layer->setBackingStoreAttached(m_intersectsCoverageRect); if (m_layerClones) { LayerMap::const_iterator end = m_layerClones->end(); diff --git a/webkit/WebCore/platform/graphics/cairo/FontCairo.cpp b/webkit/WebCore/platform/graphics/cairo/FontCairo.cpp index 53a339931..9ed617bdf 100644 --- a/webkit/WebCore/platform/graphics/cairo/FontCairo.cpp +++ b/webkit/WebCore/platform/graphics/cairo/FontCairo.cpp @@ -47,7 +47,7 @@ namespace WebCore { -static void drawGlyphsToContext(cairo_t* context, const Font* font, GlyphBufferGlyph* glyphs, int numGlyphs) +static void drawGlyphsToContext(cairo_t* context, const Font* font, const cairo_glyph_t* glyphs, int numGlyphs) { cairo_matrix_t originalTransform; float syntheticBoldOffset = font->syntheticBoldOffset(); @@ -66,7 +66,7 @@ static void drawGlyphsToContext(cairo_t* context, const Font* font, GlyphBufferG cairo_set_matrix(context, &originalTransform); } -static void drawGlyphsShadow(GraphicsContext* graphicsContext, const FloatPoint& point, const Font* font, GlyphBufferGlyph* glyphs, int numGlyphs) +static void drawGlyphsShadow(GraphicsContext* graphicsContext, const FloatPoint& point, const Font* font, const cairo_glyph_t* glyphs, int numGlyphs) { ShadowBlur& shadow = graphicsContext->platformContext()->shadowBlur(); @@ -103,37 +103,42 @@ void FontCascade::drawGlyphs(GraphicsContext* context, const Font* font, const G if (!font->platformData().size()) return; - GlyphBufferGlyph* glyphs = const_cast(glyphBuffer.glyphs(from)); - - float offset = point.x(); - for (int i = 0; i < numGlyphs; i++) { - glyphs[i].x = offset; - glyphs[i].y = point.y(); - offset += glyphBuffer.advanceAt(from + i).width(); + auto xOffset = point.x(); + Vector cairoGlyphs(numGlyphs); + { + ASSERT(from + numGlyphs <= glyphBuffer.size()); + auto* glyphs = glyphBuffer.glyphs(from); + auto* advances = glyphBuffer.advances(from); + + auto yOffset = point.y(); + for (size_t i = 0; i < numGlyphs; ++i) { + cairoGlyphs[i] = { glyphs[i], xOffset, yOffset }; + xOffset += advances[i].width(); + } } PlatformContextCairo* platformContext = context->platformContext(); - drawGlyphsShadow(context, point, font, glyphs, numGlyphs); + drawGlyphsShadow(context, point, font, cairoGlyphs.data(), numGlyphs); cairo_t* cr = platformContext->cr(); cairo_save(cr); if (context->textDrawingMode() & TextModeFill) { platformContext->prepareForFilling(context->state(), PlatformContextCairo::AdjustPatternForGlobalAlpha); - drawGlyphsToContext(cr, font, glyphs, numGlyphs); + drawGlyphsToContext(cr, font, cairoGlyphs.data(), numGlyphs); } // Prevent running into a long computation within cairo. If the stroke width is // twice the size of the width of the text we will not ask cairo to stroke // the text as even one single stroke would cover the full wdth of the text. // See https://bugs.webkit.org/show_bug.cgi?id=33759. - if (context->textDrawingMode() & TextModeStroke && context->strokeThickness() < 2 * offset) { + if (context->textDrawingMode() & TextModeStroke && context->strokeThickness() < 2 * xOffset) { platformContext->prepareForStroking(context->state()); cairo_set_line_width(cr, context->strokeThickness()); // This may disturb the CTM, but we are going to call cairo_restore soon after. cairo_set_scaled_font(cr, font->platformData().scaledFont()); - cairo_glyph_path(cr, glyphs, numGlyphs); + cairo_glyph_path(cr, cairoGlyphs.data(), numGlyphs); cairo_stroke(cr); } diff --git a/webkit/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp b/webkit/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp index f5d8c3a6a..85b56c2fc 100644 --- a/webkit/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp +++ b/webkit/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp @@ -192,6 +192,14 @@ void PlatformContextCairo::drawSurfaceToContext(cairo_surface_t* surface, const // Cairo subsurfaces don't support floating point boundaries well, so we expand the rectangle. IntRect expandedSrcRect(enclosingIntRect(srcRect)); +#if PLATFORM(WKC) + IntSize surfaceSize = cairoSurfaceSize(surface); + if (expandedSrcRect.maxX() > surfaceSize.width()) + expandedSrcRect.setWidth(surfaceSize.width() - expandedSrcRect.x()); + if (expandedSrcRect.maxY() > surfaceSize.height()) + expandedSrcRect.setHeight(surfaceSize.height() - expandedSrcRect.y()); +#endif + // We use a subsurface here so that we don't end up sampling outside the originalSrcRect rectangle. // See https://bugs.webkit.org/show_bug.cgi?id=58309 patternSurface = adoptRef(cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(), diff --git a/webkit/WebCore/platform/graphics/mac/ComplexTextController.cpp b/webkit/WebCore/platform/graphics/mac/ComplexTextController.cpp index 12f2686ff..099e99fd4 100644 --- a/webkit/WebCore/platform/graphics/mac/ComplexTextController.cpp +++ b/webkit/WebCore/platform/graphics/mac/ComplexTextController.cpp @@ -129,6 +129,10 @@ ComplexTextController::ComplexTextController(const FontCascade& font, const Text , m_maxGlyphBoundingBoxY(std::numeric_limits::min()) , m_lastRoundingGlyph(0) { +#if PLATFORM(WIN) + ASSERT_NOT_REACHED(); +#endif + if (!m_expansion) m_expansionPerOpportunity = 0; else { diff --git a/webkit/WebCore/platform/graphics/win/FontCGWin.cpp b/webkit/WebCore/platform/graphics/win/FontCGWin.cpp index c490b1116..31c12b332 100644 --- a/webkit/WebCore/platform/graphics/win/FontCGWin.cpp +++ b/webkit/WebCore/platform/graphics/win/FontCGWin.cpp @@ -174,9 +174,6 @@ void FontCascade::drawGlyphs(GraphicsContext* graphicsContext, const Font* font, CGContextSetTextMatrix(cgContext, matrix); - // Uniscribe gives us offsets to help refine the positioning of combining glyphs. - FloatSize translation = glyphBuffer.offsetAt(from); - CGContextSetFontSize(cgContext, platformData.size()); wkSetCGContextFontRenderingStyle(cgContext, font->isSystemFont(), false, font->platformData().useGDI()); @@ -194,22 +191,22 @@ void FontCascade::drawGlyphs(GraphicsContext* graphicsContext, const Font* font, ColorSpace fillColorSpace = graphicsContext->fillColorSpace(); Color shadowFillColor(shadowColor.red(), shadowColor.green(), shadowColor.blue(), shadowColor.alpha() * fillColor.alpha() / 255); graphicsContext->setFillColor(shadowFillColor, shadowColorSpace); - float shadowTextX = point.x() + translation.width() + shadowOffset.width(); + float shadowTextX = point.x() + shadowOffset.width(); // If shadows are ignoring transforms, then we haven't applied the Y coordinate flip yet, so down is negative. - float shadowTextY = point.y() + translation.height() + shadowOffset.height() * (graphicsContext->shadowsIgnoreTransforms() ? -1 : 1); + float shadowTextY = point.y() + shadowOffset.height() * (graphicsContext.shadowsIgnoreTransforms() ? -1 : 1); CGContextSetTextPosition(cgContext, shadowTextX, shadowTextY); CGContextShowGlyphsWithAdvances(cgContext, glyphBuffer.glyphs(from), static_cast(glyphBuffer.advances(from)), numGlyphs); if (font->syntheticBoldOffset()) { - CGContextSetTextPosition(cgContext, point.x() + translation.width() + shadowOffset.width() + font->syntheticBoldOffset(), point.y() + translation.height() + shadowOffset.height()); + CGContextSetTextPosition(cgContext, point.x() + shadowOffset.width() + font.syntheticBoldOffset(), point.y() + shadowOffset.height()); CGContextShowGlyphsWithAdvances(cgContext, glyphBuffer.glyphs(from), static_cast(glyphBuffer.advances(from)), numGlyphs); } graphicsContext->setFillColor(fillColor, fillColorSpace); } - CGContextSetTextPosition(cgContext, point.x() + translation.width(), point.y() + translation.height()); + CGContextSetTextPosition(cgContext, point.x(), point.y()); CGContextShowGlyphsWithAdvances(cgContext, glyphBuffer.glyphs(from), static_cast(glyphBuffer.advances(from)), numGlyphs); if (font->syntheticBoldOffset()) { - CGContextSetTextPosition(cgContext, point.x() + translation.width() + font->syntheticBoldOffset(), point.y() + translation.height()); + CGContextSetTextPosition(cgContext, point.x() + font.syntheticBoldOffset(), point.y()); CGContextShowGlyphsWithAdvances(cgContext, glyphBuffer.glyphs(from), static_cast(glyphBuffer.advances(from)), numGlyphs); } diff --git a/webkit/WebCore/platform/graphics/win/UniscribeController.cpp b/webkit/WebCore/platform/graphics/win/UniscribeController.cpp index 6613bae9a..faf0a8fc5 100644 --- a/webkit/WebCore/platform/graphics/win/UniscribeController.cpp +++ b/webkit/WebCore/platform/graphics/win/UniscribeController.cpp @@ -364,8 +364,13 @@ bool UniscribeController::shapeAndPlaceItem(const UChar* cp, unsigned i, const F // as well, so that when the time comes to draw those glyphs, we can apply the appropriate // translation. if (glyphBuffer) { - FloatSize size(offsetX, -offsetY); - glyphBuffer->add(glyph, fontData, advance, GlyphBuffer::noOffset, &size); + GlyphBufferAdvance origin(offsetX, -offsetY); + if (!glyphBuffer->advancesCount()) + glyphBuffer->setInitialAdvance(origin); + else + glyphBuffer->expandLastAdvance(origin); + GlyphBufferAdvance advance(-origin.width() + advance, -origin.height()); + glyphBuffer->add(glyph, fontData, advance); } FloatRect glyphBounds = fontData->boundsForGlyph(glyph); diff --git a/webkit/WebCore/rendering/RenderLayer.cpp b/webkit/WebCore/rendering/RenderLayer.cpp index f4ba60bc7..600496602 100644 --- a/webkit/WebCore/rendering/RenderLayer.cpp +++ b/webkit/WebCore/rendering/RenderLayer.cpp @@ -373,18 +373,16 @@ RenderLayer::~RenderLayer() } #endif - if (inResizeMode() && !renderer().documentBeingDestroyed()) + if (inResizeMode()) renderer().frame().eventHandler().resizeLayerDestroyed(); renderer().view().frameView().removeScrollableArea(this); - if (!renderer().documentBeingDestroyed()) { #if ENABLE(IOS_TOUCH_EVENTS) - unregisterAsTouchEventListenerForScrolling(); + unregisterAsTouchEventListenerForScrolling(); #endif - if (Element* element = renderer().element()) - element->setSavedLayerScrollOffset(m_scrollOffset); - } + if (Element* element = renderer().element()) + element->setSavedLayerScrollOffset(m_scrollOffset); destroyScrollbar(HorizontalScrollbar); destroyScrollbar(VerticalScrollbar); @@ -1893,6 +1891,15 @@ void RenderLayer::willBeDestroyed() } #endif +bool RenderLayer::isDescendantOf(const RenderLayer& layer) const +{ + for (auto* ancestor = this; ancestor; ancestor = ancestor->parent()) { + if (&layer == ancestor) + return true; + } + return false; +} + void RenderLayer::addChild(RenderLayer* child, RenderLayer* beforeChild) { RenderLayer* prevSibling = beforeChild ? beforeChild->previousSibling() : lastChild(); diff --git a/webkit/WebCore/rendering/RenderLayer.h b/webkit/WebCore/rendering/RenderLayer.h index acbbec1af..062c8b177 100644 --- a/webkit/WebCore/rendering/RenderLayer.h +++ b/webkit/WebCore/rendering/RenderLayer.h @@ -131,6 +131,7 @@ class RenderLayer final : public ScrollableArea { RenderLayer* nextSibling() const { return m_next; } RenderLayer* firstChild() const { return m_first; } RenderLayer* lastChild() const { return m_last; } + bool isDescendantOf(const RenderLayer&) const; void addChild(RenderLayer* newChild, RenderLayer* beforeChild = nullptr); RenderLayer* removeChild(RenderLayer*); @@ -328,12 +329,7 @@ class RenderLayer final : public ScrollableArea { void repaintBlockSelectionGaps(); // A stacking context is a layer that has a non-auto z-index. -#if PLATFORM(WKC) - bool isFixed() const { return renderer().isPositioned() && renderer().style().position() == FixedPosition; } - bool isStackingContext() const { return isStackingContext(&renderer().style()) || isFixed(); } -#else bool isStackingContext() const { return isStackingContext(&renderer().style()); } -#endif // A stacking container can have z-order lists. All stacking contexts are // stacking containers, but the converse is not true. Layers that use diff --git a/webkit/WebCore/rendering/RenderLayerBacking.cpp b/webkit/WebCore/rendering/RenderLayerBacking.cpp index ff9432ada..4c767b6e4 100644 --- a/webkit/WebCore/rendering/RenderLayerBacking.cpp +++ b/webkit/WebCore/rendering/RenderLayerBacking.cpp @@ -1256,6 +1256,9 @@ bool RenderLayerBacking::updateDescendantClippingLayer(bool needsDescendantClip) layersChanged = true; } } else if (hasClippingLayer()) { +#if PLATFORM(WKC) + m_childContainmentLayer->setMaskLayer(nullptr); +#endif willDestroyLayer(m_childContainmentLayer.get()); m_childContainmentLayer->removeFromParent(); m_childContainmentLayer = nullptr; diff --git a/webkit/WebCore/rendering/RenderLayerCompositor.cpp b/webkit/WebCore/rendering/RenderLayerCompositor.cpp index da1085452..bf13a684e 100644 --- a/webkit/WebCore/rendering/RenderLayerCompositor.cpp +++ b/webkit/WebCore/rendering/RenderLayerCompositor.cpp @@ -2340,6 +2340,25 @@ bool RenderLayerCompositor::canBeComposited(const RenderLayer& layer) const return false; } +#if ENABLE(FULLSCREEN_API) +enum class FullScreenDescendant { Yes, No, NotApplicable }; +static FullScreenDescendant isDescendantOfFullScreenLayer(const RenderLayer& layer) +{ + auto& document = layer.renderer().document(); + + if (!document.webkitIsFullScreen() || !document.fullScreenRenderer()) + return FullScreenDescendant::NotApplicable; + + auto* fullScreenLayer = document.fullScreenRenderer()->layer(); + if (!fullScreenLayer) { + ASSERT_NOT_REACHED(); + return FullScreenDescendant::NotApplicable; + } + + return layer.isDescendantOf(*fullScreenLayer) ? FullScreenDescendant::Yes : FullScreenDescendant::No; +} +#endif + bool RenderLayerCompositor::requiresOwnBackingStore(const RenderLayer& layer, const RenderLayer* compositingAncestorLayer, const LayoutRect& layerCompositedBoundsInAncestor, const LayoutRect& ancestorCompositedBounds) const { auto& renderer = layer.renderer(); @@ -2800,6 +2819,11 @@ bool RenderLayerCompositor::requiresCompositingForWillChange(RenderLayerModelObj if (!renderer.style().willChange() || !renderer.style().willChange()->canTriggerCompositing()) return false; +#if ENABLE(FULLSCREEN_API) + if (renderer.layer() && isDescendantOfFullScreenLayer(*renderer.layer()) == FullScreenDescendant::No) + return false; +#endif + if (is(renderer)) return true; @@ -2874,6 +2898,11 @@ bool RenderLayerCompositor::requiresCompositingForPosition(RenderLayerModelObjec if (!renderer.isPositioned()) return false; +#if ENABLE(FULLSCREEN_API) + if (isDescendantOfFullScreenLayer(layer) == FullScreenDescendant::No) + return false; +#endif + EPosition position = renderer.style().position(); bool isFixed = renderer.isOutOfFlowPositioned() && position == FixedPosition; if (isFixed && !layer.isStackingContainer()) @@ -2919,6 +2948,9 @@ bool RenderLayerCompositor::requiresCompositingForPosition(RenderLayerModelObjec bool paintsContent = layer.isVisuallyNonEmpty() || layer.hasVisibleDescendant(); if (!paintsContent) { +#if PLATFORM(WKC) + m_reevaluateCompositingAfterLayout = true; +#endif if (viewportConstrainedNotCompositedReason) *viewportConstrainedNotCompositedReason = RenderLayer::NotCompositedForNoVisibleContent; return false; diff --git a/webkit/WebCore/rendering/RenderTheme.cpp b/webkit/WebCore/rendering/RenderTheme.cpp index 1dbb99e68..2dfb1cd11 100644 --- a/webkit/WebCore/rendering/RenderTheme.cpp +++ b/webkit/WebCore/rendering/RenderTheme.cpp @@ -29,6 +29,7 @@ #include "FileList.h" #include "FileSystem.h" #include "FloatConversion.h" +#include "FloatRoundedRect.h" #include "FocusController.h" #include "FontSelector.h" #include "Frame.h" diff --git a/webkit/WebCore/svg/SVGAnimatedAngle.cpp b/webkit/WebCore/svg/SVGAnimatedAngle.cpp index 0b4011b62..9b89a38c2 100644 --- a/webkit/WebCore/svg/SVGAnimatedAngle.cpp +++ b/webkit/WebCore/svg/SVGAnimatedAngle.cpp @@ -32,7 +32,12 @@ SVGAnimatedAngleAnimator::SVGAnimatedAngleAnimator(SVGAnimationElement* animatio std::unique_ptr SVGAnimatedAngleAnimator::constructFromString(const String& string) { +#if !PLATFORM(WKC) auto animatedType = SVGAnimatedType::createAngleAndEnumeration(std::make_unique>()); +#else + void* p = fastMalloc(sizeof(std::pair)); + auto animatedType = SVGAnimatedType::createAngleAndEnumeration(std::unique_ptr>(new (p) std::pair())); +#endif std::pair& animatedPair = animatedType->angleAndEnumeration(); SVGAngle angle; diff --git a/webkit/WebCore/svg/SVGAnimatedType.cpp b/webkit/WebCore/svg/SVGAnimatedType.cpp index 21dd46349..71213b714 100644 --- a/webkit/WebCore/svg/SVGAnimatedType.cpp +++ b/webkit/WebCore/svg/SVGAnimatedType.cpp @@ -34,13 +34,17 @@ SVGAnimatedType::~SVGAnimatedType() { switch (m_type) { case AnimatedAngle: +#if !PLATFORM(WKC) delete m_data.angleAndEnumeration; +#else + fastFree(m_data.angleAndEnumeration); +#endif break; case AnimatedBoolean: #if !PLATFORM(WKC) delete m_data.boolean; #else - fastFree(m_data.number); + fastFree(m_data.boolean); #endif break; case AnimatedColor: @@ -50,14 +54,14 @@ SVGAnimatedType::~SVGAnimatedType() #if !PLATFORM(WKC) delete m_data.enumeration; #else - fastFree(m_data.number); + fastFree(m_data.enumeration); #endif break; case AnimatedInteger: #if !PLATFORM(WKC) delete m_data.integer; #else - fastFree(m_data.number); + fastFree(m_data.integer); #endif break; case AnimatedIntegerOptionalInteger: diff --git a/webkit/WebCore/svg/SVGPathElement.cpp b/webkit/WebCore/svg/SVGPathElement.cpp index 356360b78..3028e1653 100644 --- a/webkit/WebCore/svg/SVGPathElement.cpp +++ b/webkit/WebCore/svg/SVGPathElement.cpp @@ -1,6 +1,7 @@ /* * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis + * Copyright (C) 2018 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -272,7 +273,7 @@ void SVGPathElement::svgAttributeChanged(const QualifiedName& attrName) if (m_pathSegList.shouldSynchronize && !SVGAnimatedProperty::lookupWrapper(this, dPropertyInfo())->isAnimating()) { SVGPathSegList newList(PathSegUnalteredRole); buildSVGPathSegListFromByteStream(m_pathByteStream.get(), this, newList, UnalteredParsing); - m_pathSegList.value = newList; + m_pathSegList.value = WTF::move(newList); } if (renderer) diff --git a/webkit/WebCore/svg/SVGPathSegList.cpp b/webkit/WebCore/svg/SVGPathSegList.cpp index b9e4e5f27..a725018ca 100644 --- a/webkit/WebCore/svg/SVGPathSegList.cpp +++ b/webkit/WebCore/svg/SVGPathSegList.cpp @@ -3,6 +3,7 @@ * Copyright (C) 2004, 2005 Rob Buis * Copyright (C) 2007 Eric Seidel * Copyright (C) Research In Motion Limited 2010. All rights reserved. + * Copyright (C) 2018 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -26,6 +27,7 @@ #include "SVGNames.h" #include "SVGPathElement.h" #include "SVGPathUtilities.h" +#include "SVGPathSegWithContext.h" namespace WebCore { @@ -42,4 +44,17 @@ void SVGPathSegList::commitChange(SVGElement* contextElement, ListModification l downcast(contextElement)->pathSegListChanged(m_role, listModification); } +void SVGPathSegList::clearItemContextAndRole(unsigned index) +{ + auto& item = at(index); + static_cast(*item).setContextAndRole(nullptr, PathSegUndefinedRole); +} + +void SVGPathSegList::clearContextAndRoles() +{ + auto count = size(); + while (count--) + clearItemContextAndRole(count); +} + } diff --git a/webkit/WebCore/svg/SVGPathSegList.h b/webkit/WebCore/svg/SVGPathSegList.h index 2ede53af2..fc7b7fd59 100644 --- a/webkit/WebCore/svg/SVGPathSegList.h +++ b/webkit/WebCore/svg/SVGPathSegList.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2007 Eric Seidel + * Copyright (C) 2018 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -33,17 +34,44 @@ class SVGElement; class SVGPathSegList : public Vector> { public: - SVGPathSegList(SVGPathSegRole role) + using Base = Vector>; + + explicit SVGPathSegList(SVGPathSegRole role) : m_role(role) { } + + SVGPathSegList(const SVGPathSegList&) = default; + SVGPathSegList(SVGPathSegList&&) = default; + + SVGPathSegList& operator=(const SVGPathSegList& other) + { + clearContextAndRoles(); + return static_cast(Base::operator=(other)); + } + + SVGPathSegList& operator=(SVGPathSegList&& other) + { + clearContextAndRoles(); + return static_cast(Base::operator=(WTF::move(other))); + } + + void clear() + { + clearContextAndRoles(); + Base::clear(); + } + String valueAsString() const; // Only used by SVGPathSegListPropertyTearOff. void commitChange(SVGElement* contextElement, ListModification); + void clearItemContextAndRole(unsigned index); private: + void clearContextAndRoles(); + SVGPathSegRole m_role; }; diff --git a/webkit/WebCore/svg/properties/SVGPathSegListPropertyTearOff.cpp b/webkit/WebCore/svg/properties/SVGPathSegListPropertyTearOff.cpp index 07a3c8e1e..59b4696cb 100644 --- a/webkit/WebCore/svg/properties/SVGPathSegListPropertyTearOff.cpp +++ b/webkit/WebCore/svg/properties/SVGPathSegListPropertyTearOff.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) Research In Motion Limited 2010. All rights reserved. + * Copyright (C) 2018 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -27,21 +28,12 @@ namespace WebCore { -void SVGPathSegListPropertyTearOff::clearContextAndRoles() -{ - ASSERT(m_values); - for (auto& item : *m_values) { - static_cast(item.get())->setContextAndRole(0, PathSegUndefinedRole); - } -} - void SVGPathSegListPropertyTearOff::clear(ExceptionCode& ec) { ASSERT(m_values); if (m_values->isEmpty()) return; - clearContextAndRoles(); SVGPathSegListPropertyTearOff::Base::clearValues(ec); } @@ -63,20 +55,17 @@ SVGPathSegListPropertyTearOff::PtrListItemType SVGPathSegListPropertyTearOff::re return 0; } - if (index < m_values->size()) { - ListItemType replacedItem = m_values->at(index); - ASSERT(replacedItem); - static_cast(replacedItem.get())->setContextAndRole(0, PathSegUndefinedRole); - } - + if (index < m_values->size()) + m_values->clearItemContextAndRole(index); return Base::replaceItemValues(newItem, index, ec); } SVGPathSegListPropertyTearOff::PtrListItemType SVGPathSegListPropertyTearOff::removeItem(unsigned index, ExceptionCode& ec) { + if (index < m_values->size()) + m_values->clearItemContextAndRole(index); + SVGPathSegListPropertyTearOff::ListItemType removedItem = SVGPathSegListPropertyTearOff::Base::removeItemValues(index, ec); - if (removedItem) - static_cast(removedItem.get())->setContextAndRole(0, PathSegUndefinedRole); return removedItem; } diff --git a/webkit/WebCore/svg/properties/SVGPathSegListPropertyTearOff.h b/webkit/WebCore/svg/properties/SVGPathSegListPropertyTearOff.h index 7d68cd052..32d3f6496 100644 --- a/webkit/WebCore/svg/properties/SVGPathSegListPropertyTearOff.h +++ b/webkit/WebCore/svg/properties/SVGPathSegListPropertyTearOff.h @@ -1,5 +1,6 @@ /* * Copyright (C) Research In Motion Limited 2010. All rights reserved. + * Copyright (C) 2018 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -75,7 +76,6 @@ class SVGPathSegListPropertyTearOff : public SVGListProperty { return nullptr; } - clearContextAndRoles(); return Base::initializeValues(newItem, ec); } @@ -117,8 +117,6 @@ class SVGPathSegListPropertyTearOff : public SVGListProperty { SVGPathElement* contextElement() const; - void clearContextAndRoles(); - using Base::m_role; virtual bool isReadOnly() const override diff --git a/webkit/WebCore/svg/properties/SVGPropertyTearOff.h b/webkit/WebCore/svg/properties/SVGPropertyTearOff.h index ca7d367d5..167939005 100644 --- a/webkit/WebCore/svg/properties/SVGPropertyTearOff.h +++ b/webkit/WebCore/svg/properties/SVGPropertyTearOff.h @@ -63,7 +63,11 @@ class SVGPropertyTearOff : public SVGPropertyTearOffBase { { if (m_valueIsCopy) { detachChildren(); +#if !PLATFORM(WKC) delete m_value; +#else + WTF::fastFree(m_value); +#endif } m_valueIsCopy = false; m_value = &value; @@ -103,7 +107,12 @@ class SVGPropertyTearOff : public SVGPropertyTearOffBase { // item.value still has to report '50' and it has to be possible to modify 'item' // w/o changing the "new item" (with x=100) in the text element. // Whenever the XML DOM modifies the "x" attribute, all existing wrappers are detached, using this function. +#if !PLATFORM(WKC) m_value = new PropertyType(*m_value); +#else + void* p = WTF::fastMalloc(sizeof(PropertyType)); + m_value = new (p) PropertyType(*m_value); +#endif m_valueIsCopy = true; m_animatedProperty = nullptr; } @@ -146,16 +155,30 @@ class SVGPropertyTearOff : public SVGPropertyTearOffBase { SVGPropertyTearOff(const PropertyType* initialValue) : m_animatedProperty(nullptr) , m_role(UndefinedRole) +#if !PLATFORM(WKC) , m_value(initialValue ? new PropertyType(*initialValue) : nullptr) +#else + , m_value(nullptr) +#endif , m_valueIsCopy(true) { +#if PLATFORM(WKC) + if (initialValue) { + void* p = WTF::fastMalloc(sizeof(PropertyType)); + m_value = new (p) PropertyType(*initialValue); + } +#endif } virtual ~SVGPropertyTearOff() { if (m_valueIsCopy) { detachChildren(); +#if !PLATFORM(WKC) delete m_value; +#else + fastFree(m_value); +#endif } } diff --git a/webkit/WebCore/testing/Internals.cpp b/webkit/WebCore/testing/Internals.cpp index 6ddd23c8c..54522da18 100644 --- a/webkit/WebCore/testing/Internals.cpp +++ b/webkit/WebCore/testing/Internals.cpp @@ -2986,4 +2986,9 @@ PassRefPtr Internals::pathWithShrinkWrappedRects(Vector rectCom return DOMPath::create(path); } +void Internals::notifyResourceLoadObserver() +{ + ResourceLoadObserver::shared().notifyObserver(); +} + } diff --git a/webkit/WebCore/testing/Internals.h b/webkit/WebCore/testing/Internals.h index a77cb4ca2..7fac55c41 100644 --- a/webkit/WebCore/testing/Internals.h +++ b/webkit/WebCore/testing/Internals.h @@ -341,6 +341,8 @@ class Internals : public RefCounted void enableMockSpeechSynthesizer(); #endif + void notifyResourceLoadObserver(); + #if ENABLE(MEDIA_STREAM) void enableMockRTCPeerConnectionHandler(); #endif diff --git a/webkit/WebCore/testing/Internals.idl b/webkit/WebCore/testing/Internals.idl index c289d1581..4059b83fe 100644 --- a/webkit/WebCore/testing/Internals.idl +++ b/webkit/WebCore/testing/Internals.idl @@ -374,4 +374,6 @@ enum ResourceLoadPriority { #endif [RaisesException] DOMPath pathWithShrinkWrappedRects(sequence rectComponents, double radius); + + void notifyResourceLoadObserver(); };