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

Method runObject

src/hx/cppia/Cppia.cpp:1519–1564  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1517 return this;
1518 }
1519 hx::Object *runObject(CppiaCtx *ctx) HXCPP_OVERRIDE
1520 {
1521 if (type->arrayType)
1522 {
1523 int size = 0;
1524 if (args.size()==1)
1525 size = args[0]->runInt(ctx);
1526 switch(type->arrayType)
1527 {
1528 case arrBool:
1529 return Array_obj<bool>::__new(size,size).mPtr;
1530 case arrUnsignedChar:
1531 return Array_obj<unsigned char>::__new(size,size).mPtr;
1532 case arrInt:
1533 return Array_obj<int>::__new(size,size).mPtr;
1534 case arrFloat:
1535 return Array_obj<Float>::__new(size,size).mPtr;
1536 case arrFloat32:
1537 return Array_obj<float>::__new(size,size).mPtr;
1538 case arrString:
1539 return Array_obj<String>::__new(size,size).mPtr;
1540 case arrAny:
1541 return cpp::VirtualArray_obj::__new(size,size).mPtr;
1542 case arrObject:
1543 return Array_obj<Dynamic>::__new(size,size).mPtr;
1544 default:
1545 return 0;
1546 }
1547 }
1548 else if (constructor)
1549 {
1550 int n = args.size();
1551 Array< Dynamic > argList = Array_obj<Dynamic>::__new(n,n);
1552 for(int a=0;a<n;a++)
1553 argList[a].mPtr = args[a]->runObject(ctx);
1554
1555 return constructor(argList).mPtr;
1556 }
1557 else
1558 {
1559 return type->cppiaClass->createInstance(ctx,args);
1560 }
1561
1562 CPPIALOG("Can't create non haxe type\n");
1563 return 0;
1564 }
1565
1566 #ifdef CPPIA_JIT
1567 void genCode(CppiaCompiler *compiler, const JitVal &inDest,ExprType destType) HXCPP_OVERRIDE

Callers

nothing calls this directly

Calls 5

__newFunction · 0.85
createInstanceMethod · 0.80
sizeMethod · 0.45
runIntMethod · 0.45
runObjectMethod · 0.45

Tested by

no test coverage detected