Changeset 266932 in webkit


Ignore:
Timestamp:
Sep 11, 2020 11:54:17 AM (4 years ago)
Author:
Ben Nham
Message:

Fix undeclared identifier issue due to clashes in soft link headers
https://bugs.webkit.org/show_bug.cgi?id=216412

Reviewed by Geoffrey Garen.

Source/WebCore/PAL:

r266898 broke builds on certain SDKs. The reason for this is that it includes
MediaToolbox/FigPhoto.h, which transitively includes CoreMedia/CMTimePrivate.h. The latter
header has a bunch of inline code in certain SDKs which conflicts with the
CoreMediaSoftLink.h header. For instance, CoreMediaSoftLink.h redefines CMTimeCompare to
softLink_CoreMedia_CMTimeCompare, which messes up the inline code in the CMTimePrivate.h
header that references CMTimeCompare.

For now, we just avoid including FigPhoto.h altogether and use a constant. We'll clean this
up once we start weak linking rather than soft linking CoreMedia and MediaToolbox (216388).

  • pal/cocoa/MediaToolboxSoftLink.cpp:
  • pal/cocoa/MediaToolboxSoftLink.h:
  • pal/spi/cocoa/MediaToolboxSPI.h:

Source/WebKit:

Use the workaround constant kPALFigPhotoContainerFormat_JFIF instead of the enum value
kFigPhotoContainerFormat_JFIF.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Location:
trunk/Source
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/PAL/ChangeLog

    r266898 r266932  
     12020-09-11  Ben Nham  <nham@apple.com>
     2
     3        Fix undeclared identifier issue due to clashes in soft link headers
     4        https://bugs.webkit.org/show_bug.cgi?id=216412
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        r266898 broke builds on certain SDKs. The reason for this is that it includes
     9        MediaToolbox/FigPhoto.h, which transitively includes CoreMedia/CMTimePrivate.h. The latter
     10        header has a bunch of inline code in certain SDKs which conflicts with the
     11        CoreMediaSoftLink.h header. For instance, CoreMediaSoftLink.h redefines CMTimeCompare to
     12        softLink_CoreMedia_CMTimeCompare, which messes up the inline code in the CMTimePrivate.h
     13        header that references CMTimeCompare.
     14
     15        For now, we just avoid including FigPhoto.h altogether and use a constant. We'll clean this
     16        up once we start weak linking rather than soft linking CoreMedia and MediaToolbox (216388).
     17
     18        * pal/cocoa/MediaToolboxSoftLink.cpp:
     19        * pal/cocoa/MediaToolboxSoftLink.h:
     20        * pal/spi/cocoa/MediaToolboxSPI.h:
     21
    1222020-09-10  Ben Nham  <nham@apple.com>
    223
  • trunk/Source/WebCore/PAL/pal/cocoa/MediaToolboxSoftLink.cpp

    r266898 r266932  
    3434SOFT_LINK_FRAMEWORK_FOR_SOURCE_WITH_EXPORT(PAL, MediaToolbox, PAL_EXPORT)
    3535
    36 SOFT_LINK_FUNCTION_MAY_FAIL_FOR_SOURCE_WITH_EXPORT(PAL, MediaToolbox, FigPhotoDecompressionSetHardwareCutoff, void, (FigPhotoContainerFormat format, size_t numPixelsCutoff), (format, numPixelsCutoff), PAL_EXPORT)
     36SOFT_LINK_FUNCTION_MAY_FAIL_FOR_SOURCE_WITH_EXPORT(PAL, MediaToolbox, FigPhotoDecompressionSetHardwareCutoff, void, (int format, size_t numPixelsCutoff), (format, numPixelsCutoff), PAL_EXPORT)
    3737
    3838SOFT_LINK_FUNCTION_MAY_FAIL_FOR_SOURCE_WITH_EXPORT(PAL, MediaToolbox, MTShouldPlayHDRVideo, Boolean, (CFArrayRef displayList), (displayList), PAL_EXPORT)
  • trunk/Source/WebCore/PAL/pal/cocoa/MediaToolboxSoftLink.h

    r266898 r266932  
    3434SOFT_LINK_FRAMEWORK_FOR_HEADER(PAL, MediaToolbox)
    3535
    36 SOFT_LINK_FUNCTION_MAY_FAIL_FOR_HEADER(PAL, MediaToolbox, FigPhotoDecompressionSetHardwareCutoff, void, (FigPhotoContainerFormat format, size_t numPixelsCutoff), (format, numPixelsCutoff))
     36SOFT_LINK_FUNCTION_MAY_FAIL_FOR_HEADER(PAL, MediaToolbox, FigPhotoDecompressionSetHardwareCutoff, void, (int, size_t numPixelsCutoff), (format, numPixelsCutoff))
    3737
    3838SOFT_LINK_FUNCTION_MAY_FAIL_FOR_HEADER(PAL, MediaToolbox, MTShouldPlayHDRVideo, Boolean, (CFArrayRef displayList), (displayList))
  • trunk/Source/WebCore/PAL/pal/spi/cocoa/MediaToolboxSPI.h

    r266898 r266932  
    2828#if USE(MEDIATOOLBOX)
    2929
    30 #if USE(APPLE_INTERNAL_SDK)
    31 #include <MediaToolbox/FigPhoto.h>
    32 #else
    33 #include <CoreFoundation/CoreFoundation.h>
    34 
    35 typedef CF_ENUM(int, FigPhotoContainerFormat)
    36 {
    37     kFigPhotoContainerFormat_HEIF,
    38     kFigPhotoContainerFormat_JFIF,
    39 
    40 };
    41 #endif
     30// FIXME (68673547): Use actual <MediaToolbox/FigPhoto.h> and FigPhotoContainerFormat enum when we weak-link instead of soft-link MediaToolbox and CoreMedia.
     31#define kPALFigPhotoContainerFormat_HEIF 0
     32#define kPALFigPhotoContainerFormat_JFIF 1
    4233
    4334#endif
  • trunk/Source/WebKit/ChangeLog

    r266931 r266932  
     12020-09-11  Ben Nham  <nham@apple.com>
     2
     3        Fix undeclared identifier issue due to clashes in soft link headers
     4        https://bugs.webkit.org/show_bug.cgi?id=216412
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        Use the workaround constant kPALFigPhotoContainerFormat_JFIF instead of the enum value
     9        kFigPhotoContainerFormat_JFIF.
     10
     11        * WebProcess/cocoa/WebProcessCocoa.mm:
     12        (WebKit::WebProcess::platformInitializeWebProcess):
     13
    1142020-09-11  Jer Noble  <jer.noble@apple.com>
    215
  • trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

    r266898 r266932  
    340340#if HAVE(FIG_PHOTO_DECOMPRESSION_SET_HARDWARE_CUTOFF) && !ENABLE(HARDWARE_JPEG)
    341341    if (PAL::isMediaToolboxFrameworkAvailable() && PAL::canLoad_MediaToolbox_FigPhotoDecompressionSetHardwareCutoff())
    342         PAL::softLinkMediaToolboxFigPhotoDecompressionSetHardwareCutoff(kFigPhotoContainerFormat_JFIF, INT_MAX);
     342        PAL::softLinkMediaToolboxFigPhotoDecompressionSetHardwareCutoff(kPALFigPhotoContainerFormat_JFIF, INT_MAX);
    343343#endif
    344344
Note: See TracChangeset for help on using the changeset viewer.