void CloneObjectsTest::testCloneMethod() { VMSymbol* methodSymbol = GetUniverse()->NewSymbol("myMethod"); VMMethod* orig = GetUniverse()->NewMethod(methodSymbol, 0, 0); VMMethod* clone = orig->Clone(); CPPUNIT_ASSERT((intptr_t)orig != (intptr_t)clone); CPPUNIT_ASSERT_EQUAL_MESSAGE("class differs!!", orig->clazz, clone->clazz); CPPUNIT_ASSERT_EQUAL_MESSAGE("objectSize differs!!", orig->objectSize, clone->objectSize); CPPUNIT_ASSERT_EQUAL_MESSAGE("numberOfFields differs!!", orig->numberOfFields, clone->numberOfFields); CPPUNIT_ASSERT_EQUAL_MESSAGE("numberOfLocals differs!!", INT_VAL(load_ptr(orig->numberOfLocals)), INT_VAL(load_ptr(clone->numberOfLocals))); CPPUNIT_ASSERT_EQUAL_MESSAGE("bcLength differs!!", INT_VAL(load_ptr(orig->bcLength)), INT_VAL(load_ptr(clone->bcLength))); CPPUNIT_ASSERT_EQUAL_MESSAGE("maximumNumberOfStackElements differs!!", INT_VAL(load_ptr(orig->maximumNumberOfStackElements)), INT_VAL(load_ptr(clone->maximumNumberOfStackElements))); CPPUNIT_ASSERT_EQUAL_MESSAGE("numberOfArguments differs!!", INT_VAL(load_ptr(orig->numberOfArguments)), INT_VAL(load_ptr(clone->numberOfArguments))); CPPUNIT_ASSERT_EQUAL_MESSAGE("numberOfConstants differs!!", INT_VAL(load_ptr(orig->numberOfConstants)), INT_VAL(load_ptr(clone->numberOfConstants))); CPPUNIT_ASSERT_EQUAL_MESSAGE("GetHolder() differs!!", orig->GetHolder(), clone->GetHolder()); CPPUNIT_ASSERT_EQUAL_MESSAGE("GetSignature() differs!!", orig->GetSignature(), clone->GetSignature()); }
void _Method::Signature(Interpreter*, VMFrame* frame) { VMMethod* self = static_cast<VMMethod*>(frame->Pop()); frame->Push(self->GetSignature()); }
void _Primitive::Signature(VMObject*, VMFrame* frame) { VMMethod* self = static_cast<VMMethod*>(frame->Pop()); frame->Push(self->GetSignature()); }