@@ -351,16 +351,16 @@ Exec_errors MCAsk::exec_question(MCExecPoint& ep, const char *p_title)
351351#else
352352 if (!t_error)
353353 {
354-
355- MCAutoStringRef t_result;
356- MCscreen -> popupaskdialog (AT_QUESTION , p_title, *t_prompt, *t_answer, question . hint, &t_result);
357- if (*t_result != nil)
358- /* UNCHECKED */ ep . setvalueref (*t_result);
354+ char *t_result;
355+ t_result = MCscreen -> popupaskdialog (AT_QUESTION , p_title, *t_prompt, *t_answer, question . hint);
356+ if (t_result != nil)
357+ ep . copysvalue (t_result);
359358 else
360359 {
361360 ep.clear ();
362361 MCresult -> sets (MCcancelstring);
363362 }
363+ delete t_result;
364364 }
365365#endif
366366
@@ -390,15 +390,16 @@ Exec_errors MCAsk::exec_password(MCExecPoint& ep, const char *p_title)
390390#else
391391 if (!t_error)
392392 {
393- MCAutoStringRef t_result;
394- MCscreen -> popupaskdialog (AT_PASSWORD , p_title, *t_prompt, *t_answer, password . hint, &t_result );
395- if (* t_result != nil)
396- /* UNCHECKED */ ep . setvalueref (* t_result);
393+ char * t_result;
394+ t_result = MCscreen -> popupaskdialog (AT_PASSWORD , p_title, *t_prompt, *t_answer, password . hint);
395+ if (t_result != nil)
396+ ep . copysvalue ( t_result);
397397 else
398398 {
399399 ep.clear ();
400400 MCresult -> sets (MCcancelstring);
401401 }
402+ delete t_result;
402403 }
403404#endif
404405
@@ -487,7 +488,7 @@ Exec_errors MCAsk::exec_custom(MCExecPoint& ep, bool& p_cancelled, const MCStrin
487488 }
488489 va_end (t_args);
489490
490- MCdialogdata -> set (ep);
491+ MCdialogdata -> store (ep, True );
491492
492493 MCStack *t_stack;
493494 t_stack = ep . getobj () -> getstack () -> findstackname (p_stack);
@@ -496,15 +497,15 @@ Exec_errors MCAsk::exec_custom(MCExecPoint& ep, bool& p_cancelled, const MCStrin
496497 MCtrace = False;
497498 if (t_stack != NULL )
498499 {
499- MCdialogdata -> set (ep);
500+ MCdialogdata -> store (ep, True );
500501 if (MCdefaultstackptr -> getopened () || MCtopstackptr == NULL )
501502 t_stack -> openrect (MCdefaultstackptr -> getrect (), sheet ? WM_SHEET : WM_MODAL , sheet ? MCdefaultstackptr: NULL , WP_DEFAULT , OP_NONE );
502503 else
503504 t_stack -> openrect (MCtopstackptr -> getrect (), sheet ? WM_SHEET : WM_MODAL , sheet ? MCtopstackptr : NULL , WP_DEFAULT , OP_NONE );
504505 }
505506 MCtrace = t_old_trace;
506507
507- MCdialogdata -> eval (ep);
508+ MCdialogdata -> fetch (ep);
508509 if (ep . getsvalue () . getlength () == 1 && *(ep . getsvalue () . getstring ()) == ' \0 ' )
509510 {
510511 ep . clear ();
0 commit comments