If there was no source item in a furnace it would cause a segmentation fault.

This commit is contained in:
JacobF 2011-08-30 11:38:53 -04:00
parent 4af1f2963c
commit 6415528f96
2 changed files with 3 additions and 1 deletions

@ -293,7 +293,7 @@ bool FurnaceNodeMetadata::step(float dtime)
If there is no source item or source item is not cookable, If there is no source item or source item is not cookable,
or furnace became overloaded, stop loop. or furnace became overloaded, stop loop.
*/ */
if((m_fuel_time < m_fuel_totaltime || dst_list->roomForCookedItem(src_item) == false) if((m_fuel_time < m_fuel_totaltime || (src_item && dst_list->roomForCookedItem(src_item) == false))
&& (src_item == NULL || m_src_totaltime < 0.001)) && (src_item == NULL || m_src_totaltime < 0.001))
{ {
m_step_accumulator = 0; m_step_accumulator = 0;

@ -581,6 +581,8 @@ bool InventoryList::roomForItem(const InventoryItem *item)
bool InventoryList::roomForCookedItem(const InventoryItem *item) bool InventoryList::roomForCookedItem(const InventoryItem *item)
{ {
if(!item)
return false;
const InventoryItem *cook = item->createCookResult(); const InventoryItem *cook = item->createCookResult();
if(!cook) if(!cook)
return false; return false;