Switching groups while a multiselect-dropdown is still open causes an error #173


  • New
  • Defect
Closed
Assigned to nevcairiel
  • Zerotorescue created this issue Oct 7, 2010

    What steps will reproduce the problem?
    1. Use AceConfigDialog for your config and make a tree group.
    2. Add an inline group and insert a multiselect with dialogControl = "Dropdown" in it
    2. Toggle some selections (this is required to trigger an error), and then, while the dropdown is still open, switch to another group in the tree
    3. Boom.

    Do you have an error log of what happened?
    Date: 2010-10-07 19:39:39
    ID: 3
    Error occured in: Global
    Count: 3
    Message: ..\AddOns\Ace3\AceGUI-3.0\AceGUI-3.0.lua line 236:
       Attempt to Release Widget that is already released
    Debug:
       (tail call): ?
       [C]: ?
       Ace3\AceGUI-3.0\AceGUI-3.0.lua:154:
          Ace3\AceGUI-3.0\AceGUI-3.0.lua:149
       Ace3\AceGUI-3.0\AceGUI-3.0.lua:236: Release()
       Ace3\AceGUI-3.0\AceGUI-3.0.lua:478:
          Ace3\AceGUI-3.0\AceGUI-3.0.lua:475
       (tail call): ?
       [C]: ?
       [string "safecall Dispatcher[1]"]:9:
          [string "safecall Dispatcher[1]"]:5
       (tail call): ?
       Ace3\AceGUI-3.0\AceGUI-3.0.lua:209: Release()
       Ace3\AceGUI-3.0\AceGUI-3.0.lua:478:
          Ace3\AceGUI-3.0\AceGUI-3.0.lua:475
       (tail call): ?
       [C]: ?
       [string "safecall Dispatcher[1]"]:9:
          [string "safecall Dispatcher[1]"]:5
       (tail call): ?
       Ace3\AceGUI-3.0\AceGUI-3.0.lua:209: Release()
       Ace3\AceGUI-3.0\AceGUI-3.0.lua:478: ReleaseChildren()
       ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1462:
          ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1443
       (tail call): ?
       [C]: ?
       [string "safecall Dispatcher[3]"]:9:
          [string "safecall Dispatcher[3]"]:5
       (tail call): ?
       Ace3\AceGUI-3.0\AceGUI-3.0.lua:314: Fire()
       ...ce3\AceGUI-3.0\widgets\AceGUIContainer-TreeGroup.lua:473: SetSelected()
       ...ce3\AceGUI-3.0\widgets\AceGUIContainer-TreeGroup.lua:192:
          ...ce3\AceGUI-3.0\widgets\AceGUIContainer-TreeGroup.lua:188

  • Zerotorescue added the tags New Defect Oct 7, 2010
  • Zerotorescue posted a comment Oct 7, 2010

    To update; I have been experimenting a little more and learned these multiselect dropdown boxes can actually crash the game.

    What steps will reproduce the problem?
    1. Open a config dialog with a multiselect dropdown widget as described above.
    2. Click it, untick something.
    3. Press the close button or hit escape while the dropdown pullout is still open.
    4. Boom, game crash.

    Error log:
    This application has encountered a critical error:

    ERROR #132 (0x85100084) Fatal Exception
    Program: X:\Games\World of Warcraft\WoW.exe
    Exception: 0xC0000005 (ACCESS_VIOLATION) at 0023:1FE21BD0

    The instruction at "0x1FE21BD0" referenced memory at "0x1FE21BD0".
    The memory could not be "written".

    WoWBuild: 12340
    Realm: Al'Akir [195.12.234.212:3724]
    Local Zone: Stonard, Swamp of Sorrows
    Local Player: Zerotoofatal, 01000000028789DB, (-10461.3,-3263.54,20.1784)
    Total lua memory: 46441KB
    Current Addon: Ace3
    Current Addon function: <unnamed>:Hide

    Current Addon object: (null)
    Add Ons: _Dev _NPCScan _NPCScan.Overlay ACP AddonLoader AddonUsage Altoholic LookinAtMe ArkInventory Broker_Auditor Auditor2 BadBoy BadBoy_CCleaner BadBoy_Guilded BankStack Bartender4 Bejeweled ButtonFacade ButtonFacade_Onyx Chatter DataStore DataStore_Achievements DataStore_Auctions DataStore_Characters DataStore_Containers DataStore_Crafts DataStore_Currencies DataStore_Inventory DataStore_Mails DataStore_Pets DataStore_Quests DataStore_Reputations DataStore_Skills DataStore_Spells DataStore_Stats DataStore_Talents Elephant ElkBuffBars Examiner glyphIndustry Inventory ItemCount KevTool Queue KevTool SkilletItemCount Ace3 LilSparkysWorkshop Mapster Omen OmniCC oRA2 Overachiever Overachiever_Trade PowerAuras Quartz RatingBuster Recount SexyMap Skillet SlideBar Stubby !Swatter TitanAmmo TitanBag TitanClock TitanCoords TitanGoldTracker TitanLootType TitanPerformance TitanRegen TitanRepair TitanVolume TitanXP Titan TinyTipWealth WIM XPerl XPerl_ArcaneBar XPerl_PartyPet XPerl_Party XPerl_PlayerBuffs XPerl_PlayerPet XPerl_Player XPerl_RaidAdmin XPerl_RaidHelper XPerl_RaidMonitor XPerl_RaidPets XPerl_RaidFrames XPerl_TargetTarget XPerl_Target !!!Zoom!!! DBM-Core DBM-BurningCrusade

    Edit:
    This issue seems to not occur while the dropout is still open when you have "confirm = true" within your option. I am using this to allow the use of the dropdown multiselect, but would much rather see this issue resolved. If this proves to be difficult my suggestion would be to close the dropout after selecting a user.


    Edited Oct 7, 2010
  • nevcairiel unassigned issue from kaelten Oct 11, 2010
  • nevcairiel self-assigned this issue Oct 11, 2010
  • _ForgeUser300352 posted a comment May 18, 2011

    I just wanted to add to this issue. It's important for me. I'm currently using Release-r1025. If I comment out "self.pullout:Close()" in line 468 of AceGUIWidget-DropDown.lua then it solves all of my problem without causing any detectable adverse affects. For example, the checked/unchecked data changes are still saved whether I hit escape, swap to another parent tab group in the config window, close the dropdown by clicking the button, or close the dropdown by choosing the close option. In all cases, it seems fine.

    I also have another option (a toggle option) whose disabled state is dependent on the number of selected items in my multiselect list and the disabled state of that control is changing properly with that line commented out.

    So, values are saving, and controls are being updated when I close the dropdown or exit the frame without closing.

    I realize that calling self.pullout.Close ultimately causes the pullout widget to fire self:Fire("OnClose") but I'm not sure what problems it will cause. With my config window, it's working fine but I don't cover all cases.

    ----------- Side note:

    If you add some debug prints to the OnAcquire and OnRelease methods for both the Dropdown and the Dropdown-Pullout widgets the output looks like this when things work correctly:

    Releasing Dropdown: table: 12DAE120 Releasing Pullout: table: 12DB7980 Acquiring Dropdown: table: 12DAE120 Acquiring Pullout: table: 12DB7980

    And then it's broke (by switching off to some other tab in the config instead of first closing the dropdown) it looks like this:

    Releasing Dropdown: table: 12DAE120 Acquiring Dropdown: table: 1EEF4CC0 * Releasing Pullout: table: 12DB7980 Acquiring Dropdown: table: 12DAE120 Acquiring Pullout: table: 12DB7980

  • nevcairiel closed issue Apr 14, 2020

To post a comment, please login or register a new account.