Instance &Instance::InitSingle(void) { Instance *instance = &Get(); VerifyOrExit(instance->mIsInitialized == false); instance = new (&sInstanceRaw) Instance(); instance->AfterInit(); exit: return *instance; }
Instance *Instance::Init(void *aBuffer, size_t *aBufferSize) { Instance *instance = NULL; VerifyOrExit(aBufferSize != NULL); // Make sure the input buffer is big enough VerifyOrExit(sizeof(Instance) <= *aBufferSize, *aBufferSize = sizeof(Instance)); VerifyOrExit(aBuffer != NULL); instance = new (aBuffer) Instance(); instance->AfterInit(); exit: return instance; }