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

Function resizeByteData

include/hx/CFFI.h:360–397  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

358}
359
360inline bool resizeByteData(value inValue, int inNewLen)
361{
362 if (!val_is_object(inValue))
363 return false;
364
365 static field bField = 0;
366 static field lengthField = 0;
367 if (bField==0)
368 {
369 bField = val_id("b");
370 lengthField = val_id("length");
371 }
372 value len = val_field(inValue, lengthField);
373 if (!val_is_int(len))
374 return false;
375 int oldLen = val_int(len);
376 value b = val_field(inValue, bField);
377 if (val_is_string(b))
378 {
379 if (inNewLen>oldLen)
380 {
381 value newString = alloc_raw_string(inNewLen);
382 memcpy( (char *)val_string(newString), val_string(b), inNewLen);
383 alloc_field(inValue, bField, newString );
384 }
385 alloc_field(inValue, lengthField, alloc_int(inNewLen) );
386 }
387 else if (val_is_buffer(b))
388 {
389 cffiByteBuffer buf = val_to_buffer(b);
390 buffer_set_size(buf,inNewLen);
391 alloc_field(inValue, lengthField, alloc_int(inNewLen) );
392 }
393 else
394 return false;
395
396 return true;
397}
398
399
400#define val_null alloc_null()

Callers

nothing calls this directly

Calls 14

val_is_objectFunction · 0.85
val_is_intFunction · 0.85
val_is_stringFunction · 0.85
alloc_raw_stringFunction · 0.85
memcpyFunction · 0.85
val_stringFunction · 0.85
val_is_bufferFunction · 0.85
val_to_bufferFunction · 0.85
buffer_set_sizeFunction · 0.85
val_idFunction · 0.70
val_fieldFunction · 0.70
val_intFunction · 0.70

Tested by

no test coverage detected