@@ -109,11 +109,10 @@ static const unichar_t close_comment[] = {'-', '-', '>'};
109109static const unichar_t rev_tag[] = {' r' ,' e' ,' v' };
110110static const unichar_t livecode_tag[] = {' l' ,' i' ,' v' , ' e' , ' c' , ' o' , ' d' , ' e' };
111111
112- MCScriptPoint::MCScriptPoint (MCObject *o, MCHandlerlist *hl, MCStringRef s)
112+ MCScriptPoint::MCScriptPoint (MCObject *o, MCHandlerlist *hl, MCDataRef s)
113113{
114- unichar_t *t_unicode_string;
115- /* UNCHECKED */ MCStringConvertToUnicode (s, t_unicode_string, length);
116- /* UNCHECKED */ MCDataCreateWithBytesAndRelease ((byte_t *)t_unicode_string, (length + 1 ) * 2 , utf16_script);
114+ utf16_script = MCValueRetain (s);
115+ length = MCDataGetLength (s) / 2 - 1 ;
117116
118117 curobj = o;
119118 curhlist = hl;
@@ -133,6 +132,30 @@ MCScriptPoint::MCScriptPoint(MCObject *o, MCHandlerlist *hl, MCStringRef s)
133132 token_nameref = MCValueRetain (kMCEmptyName );
134133}
135134
135+ MCScriptPoint::MCScriptPoint (MCObject *o, MCHandlerlist *hl, MCStringRef s)
136+ {
137+ unichar_t *t_unicode_string;
138+ /* UNCHECKED */ MCStringConvertToUnicode (s, t_unicode_string, length);
139+ /* UNCHECKED */ MCDataCreateWithBytesAndRelease ((byte_t *)t_unicode_string, (length + 1 ) * 2 , utf16_script);
140+
141+ curobj = o;
142+ curhlist = hl;
143+ curhandler = NULL ;
144+ curptr = tokenptr = backupptr = (const unichar_t *)MCDataGetBytePtr (utf16_script);
145+ endptr = curptr + length;
146+
147+ uindex_t t_index = 0 ;
148+ codepoint = MCUnicodeCodepointAdvance (curptr, length, t_index);
149+ curlength = t_index;
150+
151+ line = pos = 1 ;
152+ escapes = False;
153+ tagged = False;
154+ in_tag = False;
155+ was_in_tag = False;
156+ token_nameref = MCValueRetain (kMCEmptyName );
157+ }
158+
136159MCScriptPoint::MCScriptPoint (MCScriptPoint &sp)
137160{
138161 utf16_script = MCValueRetain (sp . utf16_script);
0 commit comments