diff options
| author | Paul Gilbert | 2016-11-13 16:07:16 -0500 | 
|---|---|---|
| committer | Paul Gilbert | 2016-11-13 16:07:16 -0500 | 
| commit | f1db69d422ed93324633808763e8dbe8f09e5380 (patch) | |
| tree | fbe1a00cfe4da4d2365e6dd3fa4c1522d81d6779 | |
| parent | 66eb358ded6c9269c334bf169a4c9cf79cc31c47 (diff) | |
| download | scummvm-rg350-f1db69d422ed93324633808763e8dbe8f09e5380.tar.gz scummvm-rg350-f1db69d422ed93324633808763e8dbe8f09e5380.tar.bz2 scummvm-rg350-f1db69d422ed93324633808763e8dbe8f09e5380.zip  | |
TITANIC: Fix crash in setConcept when src is null
| -rw-r--r-- | engines/titanic/true_talk/tt_concept_node.cpp | 52 | 
1 files changed, 27 insertions, 25 deletions
diff --git a/engines/titanic/true_talk/tt_concept_node.cpp b/engines/titanic/true_talk/tt_concept_node.cpp index f6512b3d81..ccba1b81bb 100644 --- a/engines/titanic/true_talk/tt_concept_node.cpp +++ b/engines/titanic/true_talk/tt_concept_node.cpp @@ -86,32 +86,34 @@ TTconcept **TTconceptNode::setConcept(int conceptIndex, TTconcept *src) {  		break;  	} -	bool isPronoun = false; -	StringArray &pronouns = g_vm->_scriptHandler->_parser._pronouns; -	for (uint idx = 0; idx < pronouns.size() && !isPronoun; ++idx) { -		isPronoun = pronouns[idx] == src->getText(); -	} +	if (src) { +		bool isPronoun = false; +		StringArray &pronouns = g_vm->_scriptHandler->_parser._pronouns; +		for (uint idx = 0; idx < pronouns.size() && !isPronoun; ++idx) { +			isPronoun = pronouns[idx] == src->getText(); +		} -	CScriptHandler &scrHandler = *g_vm->_exeResources._owner; -	if (!isPronoun) { -		switch (conceptIndex) { -		case 0: -			delete scrHandler._concept2P; -			scrHandler._concept2P = new TTconcept(*src); -			break; - -		case 1: -			delete scrHandler._concept4P; -			scrHandler._concept4P = new TTconcept(*src); -			break; - -		case 2: -			delete scrHandler._concept1P; -			scrHandler._concept1P = new TTconcept(*src); -			break; - -		default: -			break; +		CScriptHandler &scrHandler = *g_vm->_exeResources._owner; +		if (!isPronoun) { +			switch (conceptIndex) { +			case 0: +				delete scrHandler._concept2P; +				scrHandler._concept2P = new TTconcept(*src); +				break; + +			case 1: +				delete scrHandler._concept4P; +				scrHandler._concept4P = new TTconcept(*src); +				break; + +			case 2: +				delete scrHandler._concept1P; +				scrHandler._concept1P = new TTconcept(*src); +				break; + +			default: +				break; +			}  		}  	}  | 
