uObject* uNew(uType* type) { U_ASSERT(type); size_t size = type->ObjectSize; U_ASSERT(size); return uInitObject(type, U_MALLOC_OBJECT(size, type), size); }
uString* uString::New(int length) { size_t size = sizeof(uString) + sizeof(uChar) * length + sizeof(uChar); uString* string = (uString*)uInitObject(::g::Uno::String_typeof(), U_MALLOC_STRING(size), size); string->_ptr = (uChar*)((uint8_t*)string + sizeof(uString)); string->_length = length; return string; }
uString* uAllocString(int length) { size_t allocSize = sizeof(uString) + sizeof(uChar) * length + sizeof(uChar); uType *stringType = ::app::Uno::String__typeof(); uString* result = (uString *)uInitObject(stringType, U_MALLOC_STRING(allocSize), allocSize); result->_ptr = (uChar*)((uByte*)result + sizeof(uString)); result->_len = length; return result; }
uObject* uAllocObject(size_t objSize, uType* objType) { return uInitObject(objType, U_MALLOC_OBJECT(objSize, objType), objSize); }