MCPcopy Create free account
hub / github.com/GNOME/gjs / gjs_array_to_basic_array

Function gjs_array_to_basic_array

gi/arg.cpp:702–761  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

700}
701
702GJS_JSAPI_RETURN_CONVENTION
703static bool gjs_array_to_basic_array(JSContext* cx, JS::HandleValue v_array,
704 size_t length,
705 GITypeTag element_storage_type,
706 void** array_out) {
707 g_assert(GI_TYPE_TAG_IS_BASIC(element_storage_type));
708
709 switch (element_storage_type) {
710 case GI_TYPE_TAG_UTF8:
711 return gjs_array_to_strv(cx, v_array, length, array_out);
712 case GI_TYPE_TAG_FILENAME:
713 return array_to_basic_c_array(cx, v_array, length,
714 element_storage_type, array_out);
715 case GI_TYPE_TAG_BOOLEAN:
716 return gjs_array_to_auto_array<Gjs::Tag::GBoolean>(
717 cx, v_array, length, array_out);
718 case GI_TYPE_TAG_UNICHAR:
719 return gjs_array_to_auto_array<char32_t>(cx, v_array, length,
720 array_out);
721 case GI_TYPE_TAG_UINT8:
722 return gjs_array_to_auto_array<uint8_t>(cx, v_array, length,
723 array_out);
724 case GI_TYPE_TAG_INT8:
725 return gjs_array_to_auto_array<int8_t>(cx, v_array, length,
726 array_out);
727 case GI_TYPE_TAG_UINT16:
728 return gjs_array_to_auto_array<uint16_t>(cx, v_array, length,
729 array_out);
730 case GI_TYPE_TAG_INT16:
731 return gjs_array_to_auto_array<int16_t>(cx, v_array, length,
732 array_out);
733 case GI_TYPE_TAG_UINT32:
734 return gjs_array_to_auto_array<uint32_t>(cx, v_array, length,
735 array_out);
736 case GI_TYPE_TAG_INT32:
737 return gjs_array_to_auto_array<int32_t>(cx, v_array, length,
738 array_out);
739 case GI_TYPE_TAG_INT64:
740 return gjs_array_to_auto_array<int64_t>(cx, v_array, length,
741 array_out);
742 case GI_TYPE_TAG_UINT64:
743 return gjs_array_to_auto_array<uint64_t>(cx, v_array, length,
744 array_out);
745 case GI_TYPE_TAG_FLOAT:
746 return gjs_array_to_auto_array<float>(cx, v_array, length,
747 array_out);
748 case GI_TYPE_TAG_DOUBLE:
749 return gjs_array_to_auto_array<double>(cx, v_array, length,
750 array_out);
751 case GI_TYPE_TAG_GTYPE:
752 return gjs_array_to_auto_array<Gjs::Tag::GType>(cx, v_array, length,
753 array_out);
754 case GI_TYPE_TAG_VOID:
755 gjs_throw(cx, "Unhandled array element type %d",
756 element_storage_type);
757 return false;
758 default:
759 g_assert_not_reached();

Callers 2

gjs_array_to_arrayFunction · 0.85

Calls 3

gjs_array_to_strvFunction · 0.85
array_to_basic_c_arrayFunction · 0.85
gjs_throwFunction · 0.85

Tested by

no test coverage detected