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

Method runVoid

src/hx/cppia/ArrayBuiltin.cpp:829–946  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

827 return 0;
828 }
829 void runVoid(CppiaCtx *ctx) HXCPP_OVERRIDE
830 {
831 if (FUNC==afPop)
832 {
833 Array_obj<ELEM> *thisVal = (Array_obj<ELEM>*)thisExpr->runObject(ctx);
834 BCR_VCHECK;
835 thisVal->pop();
836 }
837 if (FUNC==afShift)
838 {
839 Array_obj<ELEM> *thisVal = (Array_obj<ELEM>*)thisExpr->runObject(ctx);
840 BCR_VCHECK;
841 thisVal->shift();
842 }
843 if (FUNC==af__set)
844 {
845 Array_obj<ELEM> *thisVal = (Array_obj<ELEM>*)thisExpr->runObject(ctx);
846 BCR_VCHECK;
847 int i = args[0]->runInt(ctx);
848 BCR_VCHECK;
849 ELEM elem;
850 thisVal->Item(i) = runValue(elem,ctx,args[1]);
851 #ifdef HXCPP_GC_GENERATIONAL
852 if (hx::ContainsPointers<ELEM>())
853 HX_OBJ_WB_CTX(thisVal, hx::PointerOf(elem), ctx);
854 #endif
855
856 }
857 if (FUNC==af__crement)
858 {
859 Array_obj<ELEM> *thisVal = (Array_obj<ELEM>*)thisExpr->runObject(ctx);
860 BCR_VCHECK;
861 int idx = args[0]->runInt(ctx);
862 BCR_VCHECK;
863 ELEM &elem = thisVal->Item(idx);
864 CREMENT::run(elem);
865 #ifdef HXCPP_GC_GENERATIONAL
866 if (hx::ContainsPointers<ELEM>())
867 HX_OBJ_WB_CTX(thisVal,hx::PointerOf(elem),ctx);
868 #endif
869 }
870
871 if (FUNC==afPush || FUNC==afContains || FUNC==afRemove || FUNC==afIndexOf || FUNC==afLastIndexOf)
872 runInt(ctx);
873
874 if (FUNC==afConcat || FUNC==afCopy || FUNC==afReverse || FUNC==afSplice || FUNC==afSlice ||
875 FUNC==afMap || FUNC==afFilter)
876 runObject(ctx);
877
878 if (FUNC==afReverse)
879 {
880 Array_obj<ELEM> *thisVal = (Array_obj<ELEM>*)thisExpr->runObject(ctx);
881 BCR_VCHECK;
882 thisVal->reverse();
883 }
884 if (FUNC==afSort)
885 {
886 Array_obj<ELEM> *thisVal = (Array_obj<ELEM>*)thisExpr->runObject(ctx);

Callers

nothing calls this directly

Calls 6

PointerOfFunction · 0.85
runFunction · 0.85
runObjectMethod · 0.45
popMethod · 0.45
runIntMethod · 0.45
__SetSizeExactMethod · 0.45

Tested by

no test coverage detected