diff options
| author | Marius Kintel <marius@kintel.net> | 2012-04-03 23:46:50 (GMT) | 
|---|---|---|
| committer | Marius Kintel <marius@kintel.net> | 2012-04-03 23:46:50 (GMT) | 
| commit | 2c2731598aac00589be3f525687e0b3d272ed7eb (patch) | |
| tree | 0e6526ef14d5ca0fc409aba791da0ad81322400f /src | |
| parent | 405dfaa65fee892714ca7a689cc2916f54ada409 (diff) | |
Missing NULL check on some normalization corner cases. Fixes #95
Diffstat (limited to 'src')
| -rw-r--r-- | src/csgtermnormalizer.cc | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/src/csgtermnormalizer.cc b/src/csgtermnormalizer.cc index 0e7a759..b4bfa4c 100644 --- a/src/csgtermnormalizer.cc +++ b/src/csgtermnormalizer.cc @@ -44,9 +44,10 @@ shared_ptr<CSGTerm> CSGTermNormalizer::normalizePass(shared_ptr<CSGTerm> term)  	do {  		while (term && normalize_tail(term)) { }  		if (!term || term->type == CSGTerm::TYPE_PRIMITIVE) return term; -		term->left = normalizePass(term->left); +		if (term->left) term->left = normalizePass(term->left);  	} while (term->type != CSGTerm::TYPE_UNION && -					 (term->right->type != CSGTerm::TYPE_PRIMITIVE || term->left->type == CSGTerm::TYPE_UNION)); +					 (term->right && term->right->type != CSGTerm::TYPE_PRIMITIVE || +						term->left && term->left->type == CSGTerm::TYPE_UNION));  	term->right = normalizePass(term->right);  	// FIXME: Do we need to take into account any transformation of item here? | 
