@@ -1790,6 +1790,8 @@ static MCExternalError MCExternalVariableStore(MCExternalVariableRef var, MCExte
17901790 {
17911791 MCAutoStringRef t_stringref;
17921792
1793+ char * t_string = *(char **)p_value;
1794+
17931795 if (!MCStringCreateWithBytes (*(byte_t **)p_value, strlen (*(char **)p_value), kMCStringEncodingUTF8 , false , &t_stringref))
17941796 return kMCExternalErrorOutOfMemory ;
17951797
@@ -1799,8 +1801,8 @@ static MCExternalError MCExternalVariableStore(MCExternalVariableRef var, MCExte
17991801 {
18001802 MCAutoStringRef t_stringref;
18011803 MCString* t_string;
1802- t_string = (MCString*)t_string ;
1803- if (!MCStringCreateWithBytes ((byte_t *)t_string->getstring (), t_string->getlength (), kMCStringEncodingUTF16 , false , &t_stringref))
1804+ t_string = (MCString*)p_value ;
1805+ if (!MCStringCreateWithBytes ((byte_t *)t_string->getstring (), 2 * t_string->getlength (), kMCStringEncodingUTF16 , false , &t_stringref))
18041806 return kMCExternalErrorOutOfMemory ;
18051807
18061808 return var -> SetString (*t_stringref);
@@ -1815,6 +1817,7 @@ static MCExternalError MCExternalVariableStore(MCExternalVariableRef var, MCExte
18151817 for (t_char_count = 0 ; *t_chars; ++t_char_count)
18161818 ++t_chars;
18171819
1820+
18181821 if (!MCStringCreateWithChars (*(const unichar_t **)p_value, t_char_count, &t_stringref))
18191822 return kMCExternalErrorOutOfMemory ;
18201823
@@ -1988,7 +1991,7 @@ static MCExternalError MCExternalVariableFetch(MCExternalVariableRef var, MCExte
19881991 if (!MCStringConvertToUnicode (*t_stringref, t_chars, t_char_count))
19891992 return kMCExternalErrorOutOfMemory ;
19901993
1991- ((MCString*)p_value) -> set ((char *)t_chars, t_char_count * 2 );
1994+ ((MCString*)p_value) -> set ((char *)t_chars, t_char_count);
19921995 break ;
19931996 }
19941997 case kMCExternalValueOptionAsUTF16CString :
@@ -2166,7 +2169,7 @@ static MCExternalError MCExternalVariableAppend(MCExternalVariableRef var, MCExt
21662169 MCAutoStringRef t_stringref;
21672170 MCString* t_string;
21682171 t_string = (MCString*)t_string;
2169- if (!MCStringCreateWithBytes ((byte_t *)t_string->getstring (), t_string->getlength (), kMCStringEncodingUTF16 , false , &t_stringref))
2172+ if (!MCStringCreateWithBytes ((byte_t *)t_string->getstring (), 2 * t_string->getlength (), kMCStringEncodingUTF16 , false , &t_stringref))
21702173 return kMCExternalErrorOutOfMemory ;
21712174
21722175 return var -> AppendString (p_options, *t_stringref);
0 commit comments