diff options
Diffstat (limited to 'indra/lscript')
| -rw-r--r-- | indra/lscript/lscript_compile/lscript_tree.cpp | 40 | 
1 files changed, 20 insertions, 20 deletions
| diff --git a/indra/lscript/lscript_compile/lscript_tree.cpp b/indra/lscript/lscript_compile/lscript_tree.cpp index 2a9a858947..3d19de193a 100644 --- a/indra/lscript/lscript_compile/lscript_tree.cpp +++ b/indra/lscript/lscript_compile/lscript_tree.cpp @@ -9805,27 +9805,27 @@ void LLScriptEventHandler::recurse(LLFILE *fp, S32 tabs, S32 tabsize, LSCRIPTCom  		break;  	case LSCP_EMIT_BYTE_CODE:  		{ -			// null terminated event name and null terminated parameters  			llassert(mEventp); -			if (mEventp) -			{ -				// order for event handler -				// set jump table value -				S32 jumpoffset; -				jumpoffset = LSCRIPTDataSize[LST_INTEGER]*get_event_handler_jump_position(gCurrentHandler, mEventp->mType)*2; -				 -				integer2bytestream(chunk->mCodeChunk, jumpoffset, chunk->mCurrentOffset); -				 -				// 0 - 3: offset to actual data -				S32 offsetoffset = chunk->mCurrentOffset; -				S32 offsetdelta = 0; -				chunk->addBytes(4); - -				LLScriptByteCodeChunk	*event = new LLScriptByteCodeChunk(FALSE); -				mEventp->recurse(fp, tabs, tabsize, pass, ptype, prunearg, scope, type, basetype, count, event, heap, stacksize, entry, entrycount, NULL); -				chunk->addBytes(event->mCodeChunk, event->mCurrentOffset); -				delete event; -			} +			if (!mEventp) return; + +			// order for event handler +			// set jump table value +			S32 jumpoffset; +			jumpoffset = LSCRIPTDataSize[LST_INTEGER]*get_event_handler_jump_position(gCurrentHandler, mEventp->mType)*2; + +			integer2bytestream(chunk->mCodeChunk, jumpoffset, chunk->mCurrentOffset); + +			// 0 - 3: offset to actual data +			S32 offsetoffset = chunk->mCurrentOffset; +			S32 offsetdelta = 0; +			chunk->addBytes(4); + +			// null terminated event name and null terminated parameters +			LLScriptByteCodeChunk	*event = new LLScriptByteCodeChunk(FALSE); +			mEventp->recurse(fp, tabs, tabsize, pass, ptype, prunearg, scope, type, basetype, count, event, heap, stacksize, entry, entrycount, NULL); +			chunk->addBytes(event->mCodeChunk, event->mCurrentOffset); +			delete event; +		  			chunk->addBytes(1);  			// now we're at the first opcode | 
