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

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

View File

@ -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;

View File

@ -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;