Skip to content

Commit 99d876d

Browse files
committed
[[ SendScript ]] Tidy up MCMessage class
1 parent c5e3c3d commit 99d876d

File tree

2 files changed

+28
-37
lines changed

2 files changed

+28
-37
lines changed

engine/src/cmds.h

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,25 +1091,26 @@ class MCInsert : public MCStatement
10911091

10921092
class MCMessage : public MCStatement
10931093
{
1094-
MCExpression *message;
1095-
MCExpression *eventtype;
1096-
MCChunk *target;
1097-
MCExpression *in;
1094+
MCAutoPointer<MCExpression> message;
1095+
MCAutoPointer<MCExpression> eventtype;
1096+
MCAutoPointer<MCChunk> target;
1097+
MCAutoPointer<MCExpression> in;
10981098
Functions units;
10991099
Boolean program;
11001100
Boolean reply;
1101-
protected:
11021101
Boolean send;
11031102
public:
1104-
MCMessage()
1103+
MCMessage(Boolean p_send) :
1104+
message(nullptr),
1105+
eventtype(nullptr),
1106+
target(nullptr),
1107+
in(nullptr),
1108+
units(F_TICKS),
1109+
program(False),
1110+
reply(True)
11051111
{
1106-
message = eventtype = NULL;
1107-
target = NULL;
1108-
in = NULL;
1109-
program = False;
1110-
reply = True;
1111-
}
1112-
virtual ~MCMessage();
1112+
send = p_send;
1113+
}
11131114
virtual Parse_stat parse(MCScriptPoint &);
11141115
virtual void exec_ctxt(MCExecContext &ctxt);
11151116
virtual void compile(MCSyntaxFactoryRef);
@@ -1118,18 +1119,16 @@ class MCMessage : public MCStatement
11181119
class MCCall : public MCMessage
11191120
{
11201121
public:
1121-
MCCall()
1122+
MCCall() : MCMessage(False)
11221123
{
1123-
send = False;
1124-
}
1124+
}
11251125
};
11261126

11271127
class MCSend : public MCMessage
11281128
{
11291129
public:
1130-
MCSend()
1130+
MCSend(): MCMessage(True)
11311131
{
1132-
send = True;
11331132
}
11341133
};
11351134

engine/src/cmdse.cpp

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -642,19 +642,11 @@ void MCDispatchCmd::exec_ctxt(MCExecContext &ctxt)
642642
}
643643
}
644644

645-
MCMessage::~MCMessage()
646-
{
647-
delete message;
648-
delete eventtype;
649-
delete target;
650-
delete in;
651-
}
652-
653645
Parse_stat MCMessage::parse(MCScriptPoint &sp)
654646
{
655647
initpoint(sp);
656648

657-
if (sp.parseexp(False, True, &message) != PS_NORMAL)
649+
if (sp.parseexp(False, True, &(&message)) != PS_NORMAL)
658650
{
659651
MCperror->add(PE_SEND_BADEXP, sp);
660652
return PS_ERROR;
@@ -665,14 +657,14 @@ Parse_stat MCMessage::parse(MCScriptPoint &sp)
665657
if (sp.skip_token(SP_ASK, TT_UNDEFINED, AT_PROGRAM) == PS_NORMAL)
666658
{
667659
program = True;
668-
if (sp.parseexp(False, True, &in) != PS_NORMAL)
660+
if (sp.parseexp(False, True, &(&in)) != PS_NORMAL)
669661
{
670662
MCperror->add(PE_SEND_BADTARGET, sp);
671663
return PS_ERROR;
672664
}
673665
if (sp.skip_token(SP_REPEAT, TT_UNDEFINED, RF_WITH) == PS_NORMAL
674666
&& sp.skip_token(SP_COMMAND, TT_STATEMENT, S_REPLY) != PS_NORMAL)
675-
if (sp.parseexp(False, True, &eventtype) != PS_NORMAL)
667+
if (sp.parseexp(False, True, &(&eventtype)) != PS_NORMAL)
676668
{
677669
MCperror->add(PE_SEND_BADEVENTTYPE, sp);
678670
return PS_ERROR;
@@ -692,7 +684,7 @@ Parse_stat MCMessage::parse(MCScriptPoint &sp)
692684
MCperror->add(PE_SEND_BADTARGET, sp);
693685
return PS_ERROR;
694686
}
695-
return gettime(sp, &in, units);
687+
return gettime(sp, &(&in), units);
696688
}
697689
return PS_NORMAL;
698690
}
@@ -703,28 +695,28 @@ void MCMessage::exec_ctxt(MCExecContext &ctxt)
703695
if (program)
704696
{
705697
MCAutoStringRef t_message;
706-
if (!ctxt . EvalExprAsStringRef(message, EE_SEND_BADEXP, &t_message))
698+
if (!ctxt . EvalExprAsStringRef(*message, EE_SEND_BADEXP, &t_message))
707699
return;
708700

709701
MCAutoStringRef t_program;
710-
if (!ctxt . EvalExprAsStringRef(in, EE_SEND_BADPROGRAMEXP, &t_program))
702+
if (!ctxt . EvalExprAsStringRef(*in, EE_SEND_BADPROGRAMEXP, &t_program))
711703
return;
712704

713705
MCAutoStringRef t_event_type;
714-
if (!ctxt . EvalOptionalExprAsNullableStringRef(eventtype, EE_SEND_BADEXP, &t_event_type))
706+
if (!ctxt . EvalOptionalExprAsNullableStringRef(*eventtype, EE_SEND_BADEXP, &t_event_type))
715707
return;
716708

717709
MCScriptingExecSendToProgram(ctxt, *t_message, *t_program, *t_event_type, reply == True);
718710
}
719711
else
720712
{
721713
MCAutoStringRef t_message;
722-
if (!ctxt . EvalExprAsStringRef(message, EE_SEND_BADEXP, &t_message))
714+
if (!ctxt . EvalExprAsStringRef(*message, EE_SEND_BADEXP, &t_message))
723715
return;
724716

725717
MCObjectPtr t_target;
726718
MCObjectPtr *t_target_ptr;
727-
if (target != nil)
719+
if (*target != nil)
728720
{
729721
if (!target -> getobj(ctxt, t_target, True))
730722
{
@@ -736,11 +728,11 @@ void MCMessage::exec_ctxt(MCExecContext &ctxt)
736728
else
737729
t_target_ptr = nil;
738730

739-
if (in != nil)
731+
if (*in != nil)
740732
{
741733
double t_delay;
742734

743-
if (!ctxt . EvalExprAsDouble(in, EE_SEND_BADINEXP, t_delay))
735+
if (!ctxt . EvalExprAsDouble(*in, EE_SEND_BADINEXP, t_delay))
744736
return;
745737

746738
MCEngineExecSendInTime(ctxt, *t_message, t_target, t_delay, units);

0 commit comments

Comments
 (0)