MCPcopy Create free account
hub / github.com/HaxeFoundation/hxcpp / toString

Method toString

src/hx/Anon.cpp:302–369  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

300
301static int _hx_toString_depth = 0;
302String Anon_obj::toString()
303{
304 if (!mFields.mPtr && !mFixedFields)
305 return HX_CSTRING("{ }");
306
307 if (_hx_toString_depth >= 5)
308 return HX_CSTRING("...");
309
310 _hx_toString_depth++;
311
312 try
313 {
314 int fixedToString = findFixed(HX_CSTRING("toString"));
315 if (fixedToString>=0)
316 {
317 Dynamic func = getFixed()[fixedToString].value;
318 if (func!=null())
319 {
320 String res = func();
321 _hx_toString_depth--;
322 return res;
323 }
324 }
325
326 Dynamic func;
327 if (FieldMapGet(&mFields, HX_CSTRING("toString"), func))
328 {
329 String res = func();
330 _hx_toString_depth--;
331 return res;
332 }
333
334 if (mFixedFields)
335 {
336 Array<String> array = Array<String>(0,mFixedFields*4+4);
337 array->push(HX_CSTRING("{ "));
338
339 if (mFields.mPtr)
340 {
341 String val = __string_hash_to_string_raw(mFields);
342 if (val.raw_ptr())
343 array->push(val);
344 }
345
346 VariantKey *fixed = getFixed();
347 for(int i=0;i<mFixedFields;i++)
348 {
349 if (array->length>1)
350 array->push(HX_CSTRING(", "));
351
352 array->push(fixed[i].key);
353 array->push(HX_CSTRING(" => "));
354 array->push(fixed[i].value);
355 }
356 array->push(HX_CSTRING(" }"));
357 _hx_toString_depth--;
358 return array->join(HX_CSTRING(""));
359 }

Callers 14

hxRunLibraryFunction · 0.45
__int_hash_to_stringFunction · 0.45
__int64_hash_to_stringFunction · 0.45
__string_hash_to_stringFunction · 0.45
__object_hash_to_stringFunction · 0.45
val_strlenFunction · 0.45
val_wstringFunction · 0.45
val_dup_wstringFunction · 0.45
val_dup_stringFunction · 0.45
val_bufferFunction · 0.45
InitFunction · 0.45
__traceFunction · 0.45

Calls 6

getFixedFunction · 0.85
FieldMapGetFunction · 0.85
__string_hash_to_stringFunction · 0.85
nullClass · 0.50
pushMethod · 0.45

Tested by

no test coverage detected