[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-datatype-dev
Subject:    [datatype-dev] CN: Fix for full screen share button crash on Mac
From:       Christina Bailey <cdunn () real ! com>
Date:       2008-01-30 18:18:41
Message-ID: 47A0BF81.30709 () real ! com
[Download RAW message or body]

Reviewed by Henry, checked into HEAD and Atlas310.

thanks,
christina

Christina Bailey wrote:
> Fix for: Bug 211882 Mac/ share button in fullscreen crashes in Safari 
> only
>
> Overview: Ignore paint messages during tear down of Flash instance to 
> avoid bad access exception in Safari.
> In full screen, if the share button is hit, it will exit out of full 
> screen, destroying all of the full screen
> objects (UI and postroll flash). During tear down the attached site 
> becomes invalid.
> This is a quick fix for this problem, maybe. I think the real problem 
> may be in the mac site code,
> not calling DetachSite soon enough. Crash occurs because of an invalid 
> access to the attached site.
>
> Diff:
> Index: flash_guest_player_ns.cpp
> ===================================================================
> RCS file: /cvsroot/datatype/flash/flashhost/flash_guest_player_ns.cpp,v
> retrieving revision 1.27.2.22
> diff -w -u -5 -r1.27.2.22 flash_guest_player_ns.cpp
> --- flash_guest_player_ns.cpp    28 Jan 2008 03:37:06 -0000    1.27.2.22
> +++ flash_guest_player_ns.cpp    29 Jan 2008 22:57:57 -0000
> @@ -237,10 +237,11 @@
> #endif
>     , m_pFileSystemManager(NULL)
>     , m_ulPacingInterval(FLASH_PACING_INTERVAL)
>     , m_ulReadPacingInterval(FLASH_READ_PACING_INTERVAL)
>     , m_bTerminated(FALSE)
> +    , m_bTerminating(FALSE)
>     , m_pOutstandingInvalidRect(NULL)
>     , m_bStreamDone(FALSE)
>     , m_bIssueCallbackBetweenReads(FALSE)
>     , m_dStreamType(NP_NORMAL)
>     , m_ulFileOffsetPending(INVALID_FILE_OFFSET)
> @@ -324,10 +325,12 @@
>     // printf("CFlashGuestPlayerNS::Initialize\n");
> #endif    // _MAC_UNIX
>
>     HX_RESULT retVal = HXR_FAIL;
>
> +    m_bTerminating = FALSE;
> +
>     if (pContext)
>     {
>         // Enable logging
>         HX_ENABLE_LOGGING(pContext);
>         // Save the context
> @@ -1400,10 +1403,12 @@
>     if (m_lFlashRefCount == 0)
>     {
>     return HXR_OK;
>     }
>
> +    m_bTerminating = TRUE;
> +
>     HXLOGL4(HXLOG_FPHR, "CFlashGuestPlayerNS::Terminate()");
>
>     // Close the player
>     Close();
>     // Set the player state back to HXGUEST_STATE_PLAYER_CREATED
> @@ -2423,11 +2428,12 @@
>             npp, pInvalidRect, (pInvalidRect ? pInvalidRect->left : 0),
>             (pInvalidRect ? pInvalidRect->top : 0), (pInvalidRect ? 
> pInvalidRect->right : 0),
>             (pInvalidRect ? pInvalidRect->bottom : 0));
>     HXBOOL bHandled = FALSE;
>
> -    if (m_PluginFuncs.event == NULL)
> +    // If we are destroying the instance, exit gracefully now
> +    if (m_PluginFuncs.event == NULL || m_bTerminating)
>     {
>         return FALSE;
>     }
>
>     m_pOutstandingInvalidRect = pInvalidRect;
> Index: pub/flash_guest_player_ns.h
> ===================================================================
> RCS file: /cvsroot/datatype/flash/flashhost/pub/flash_guest_player_ns.h,v
> retrieving revision 1.14.2.9
> diff -w -u -5 -r1.14.2.9 flash_guest_player_ns.h
> --- pub/flash_guest_player_ns.h    30 Nov 2007 23:24:45 -0000    1.14.2.9
> +++ pub/flash_guest_player_ns.h    29 Jan 2008 22:57:57 -0000
> @@ -274,10 +274,11 @@
>     HXxWindow*        m_pWindow;
>     HXxWindow        m_LastSetHxWindow;
>     HXxRect        m_WindowSubHxRect;
>     HXBOOL        m_bWindowSubHxRectSet;
>     HXBOOL        m_bTerminated;
> +    HXBOOL        m_bTerminating;
>     HXBOOL        m_bStreamDone;
>     HXBOOL              m_bIssueCallbackBetweenReads;
>     IHXBuffer*        m_pOffscreenBuffer;
>     IHXMutex*        m_pMutex;
>     IHXFileStat*        m_pFileStat;
>
> _______________________________________________
> Datatype-dev mailing list
> Datatype-dev@helixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/datatype-dev
>

_______________________________________________
Datatype-dev mailing list
Datatype-dev@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-dev
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic