Skip to content

Commit 2475bb9

Browse files
committed
Updates after feedback. After typing in message box and pressing enter, program crashes
1 parent 0d7aa02 commit 2475bb9

4 files changed

Lines changed: 11 additions & 11 deletions

File tree

engine/src/dskspec.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,15 @@ MCSErrorMode MCS_get_errormode(void)
100100

101101
bool MCS_put(MCExecContext& ctxt, MCSPutKind p_kind, MCStringRef p_data)
102102
{
103-
ctxt . GetEP() . setvalueref(p_data);
104-
103+
//Program crashes : Unhandled exception at 0x00783ad6 in engine-community.exe: 0xC0000005: Access violation reading location 0x00000060.
105104
switch(p_kind)
106105
{
107106
case kMCSPutOutput:
108107
case kMCSPutBeforeMessage:
109108
case kMCSPutIntoMessage:
110-
return MCmb -> set(ctxt . GetEP(), nil, 0) == ES_NORMAL;
109+
return MCmb -> set(ctxt, p_data);
111110
case kMCSPutAfterMessage:
112-
return MCmb -> append(ctxt . GetEP(), nil, 0) == ES_NORMAL;
111+
return MCmb -> append(ctxt, p_data);
113112

114113
default:
115114
break;

engine/src/exec-files.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1605,7 +1605,8 @@ void MCFilesExecReadFromFileOrDriverUntil(MCExecContext& ctxt, bool p_driver, bo
16051605

16061606
if (MCStringGetLength(p_sentinel) == 1 && MCStringGetNativeCharAtIndex(p_sentinel, 0) == '\004')
16071607
{
1608-
IO_read_to_eof(t_stream, ctxt);
1608+
MCAutoDataRef t_data;
1609+
IO_read_to_eof(ctxt, t_stream, &t_data);
16091610
ctxt . SetTheResultToStaticCString("eof");
16101611
}
16111612

engine/src/mcio.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -219,14 +219,14 @@ IO_stat IO_write(const void *ptr, uint4 size, uint4 n, IO_handle stream)
219219
return MCS_write(ptr, size, n, stream);
220220
}
221221

222-
IO_stat IO_read_to_eof(IO_handle stream, MCExecContext& ctxt)
222+
IO_stat IO_read_to_eof(MCExecContext& ctxt, IO_handle stream, MCDataRef& r_data)
223223
{
224224
uint4 nread;
225225
nread = (uint4)MCS_fsize(stream) - (uint4)MCS_tell(stream);
226-
char *dptr;
227-
/* UNCHECKED */ ctxt.GetEP().reserve(nread, dptr);
228-
/* UNCHECKED */ MCS_readall(dptr, nread, stream, nread);
229-
ctxt.GetEP().commit(nread);
226+
void *t_stream;
227+
/* UNCHECKED */ MCMemoryAllocate(nread, t_stream);
228+
/* UNCHECKED */ MCS_readall(t_stream, nread, stream, nread);
229+
/* UNCHECKED */ MCDataCreateWithBytesAndRelease((byte_t*)t_stream, nread, r_data);
230230
return IO_NORMAL;
231231
}
232232

engine/src/mcio.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ extern real8 IO_cleansockets(real8 ctime);
6767
extern void IO_freeobject(MCObject *o);
6868
extern IO_stat IO_read(void *ptr, uint4 byte_size, IO_handle stream);
6969
extern IO_stat IO_write(const void *ptr, uint4 s, uint4 n, IO_handle stream);
70-
extern IO_stat IO_read_to_eof(IO_handle stream, MCExecContext& ctxt);
70+
extern IO_stat IO_read_to_eof(MCExecContext& ctxt, IO_handle stream, MCDataRef& r_data);
7171
extern IO_stat IO_fgets(char *ptr, uint4 length, IO_handle stream);
7272

7373
extern IO_stat IO_read_real8(real8 *dest, IO_handle stream);

0 commit comments

Comments
 (0)