CharacterInventoryBridge Missing OnDestroy to unregister events?

airoll

Member
Is CharacterInventoryBridge missing an OnDestroy method to register events that are registered in Initialize? Here's what I have implemented:

C#:
        // @CustomCode Start: Add OnDestroy method.
        /// <summary>
        /// The object has been destroyed.
        /// </summary>
        protected override void OnDestroy()
        {
            EventHandler.UnregisterEvent<ItemInfo, ItemStack>(m_Inventory, EventNames.c_Inventory_OnAdd_ItemInfo_ItemStack, OnAddItemToInventory);
            EventHandler.UnregisterEvent<ItemInfo>(m_Inventory, EventNames.c_Inventory_OnRemove_ItemInfo, OnRemoveItemFromInventory);
            base.OnDestroy();
        }
        // @CustomCode End
 
Great catch. Thank you for letting us know.
I just adde a condition to check that the object is initialized first:

Code:
/// <summary>
/// The object has been destroyed.
/// </summary>
protected override void OnDestroy()
{
    if(m_Initialized && m_Inventory != null) {
        EventHandler.UnregisterEvent<ItemInfo, ItemStack>(m_Inventory, EventNames.c_Inventory_OnAdd_ItemInfo_ItemStack, OnAddItemToInventory);
        EventHandler.UnregisterEvent<ItemInfo>(m_Inventory, EventNames.c_Inventory_OnRemove_ItemInfo, OnRemoveItemFromInventory);
    }

    base.OnDestroy();
}
 
Top