• caio.oliveira@openbossa.org's avatar
    2011-06-13 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> · 24ff28f8
    caio.oliveira@openbossa.org authored
            Reviewed by Andreas Kling.
            [Qt] JSC Bridge: convert QtConnectionObject to use JSC API
            This patch is based on the draft patch by Noam Rosenthal in bug 60842.
            Qt API autotests cover the bridge behavior and pass after this patch.
            * bridge/qt/qt_runtime.h: Change QtConnectionObject to use JSC API types. In
            particular, we got rid of Strong<JSObject> members. Renamed some members and
            arguments to follow existing naming in QObject::connect().
            * bridge/qt/qt_runtime.cpp:
            (JSC::Bindings::QtRuntimeConnectionMethod::call): Use a new helper function
            to create a connection, passing the ExecState* that will be used when the
            connection is activated (signal emitted). Use JSC API types when looking up
            the matching signal to disconnect.
            (JSC::Bindings::QtConnectionObject::QtConnectionObject): Use JSC API to
            protect the receiver and receiverFunction from being garbage
            collected. Removed the ASSERT() since we don't hold ProtectedPtrs (in current
            code were Strong<>) anymore.
            (JSC::Bindings::QtConnectionObject::~QtConnectionObject): Explain why is safe
            to use m_originalSender here. Unprotect values that we protected in constructor.
            (JSC::Bindings::isJavaScriptFunction): Helper function to identify whether a
            JSObjectRef is a JS function (in contrast to a native function exposed to JS).
            Both updated to use JSC API when appliable. Note that convertQVariantToValue
            still returns JSC internal types, will be handled in a different patch.
            Convenince for the existing caller until it is converted to JSC as well.
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@88635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
qt_runtime.cpp 70.8 KB