• Mark Shroyer's avatar
    Fix undefined behavior validating XSD substitution groups · 3c63cedb
    Mark Shroyer authored
    
    A bug in XSD substitution group validation would result in an invalid
    cast of SchemaType::Ptr to XsdComplexType::Ptr, in which case evaluating
    complexType->prohibitedSubstitutions() exhibited undefined behavior.  In
    practice this caused validation against XSD schemas containing
    substitution groups to fail on some machines, where ORing the checkSet
    mask against out of bounds memory could cause the function
    
    XsdSchemaHelper::substitutionGroupOkTransitive()
    
    to return a false negative.
    
    Minus the bug fix, the regression test added in this commit failed on
    (at least) Linux ARM when compiled with the Linaro toolchain 2013.01 g++
    4.7, with flags -marm -mcpu=cortex-a8 -O2.  However, it did not fail on
    a Linux amd64 machine prior to the bug fix.
    
    Change-Id: Idd060a941a3bc0620f1fcc903375e43022bdcbdc
    Reviewed-by: default avatarLars Knoll <lars.knoll@digia.com>
    3c63cedb
src.pro 1.09 KiB
TEMPLATE = subdirs
isPlatformSupported() {
    process.depends = core
    webengine.depends = core
    webenginewidgets.depends = core webengine
    webengine_plugin.subdir = webengine/plugin
    webengine_plugin.target = sub-webengine-plugin
    webengine_plugin.depends = webengine
    webengine_experimental_plugin.subdir = webengine/plugin/experimental
    webengine_experimental_plugin.target = sub-webengine-experimental-plugin
    webengine_experimental_plugin.depends = webengine
    SUBDIRS += core \
               process \
               webengine \
               webengine_plugin \
               webengine_experimental_plugin
    # FIXME: We probably want a bit more control over config options to tweak what to build/ship or not.
    # Another example of where this could be necessary is to make it easy to build proprietery codecs support.
    !contains(WEBENGINE_CONFIG, no_ui_delegates): SUBDIRS += webengine/ui
    qtHaveModule(widgets) {
        SUBDIRS += webenginewidgets
} else {
    warning("QtWebEngine is not maintained for this platform/configuration and is therefore disabled.")