本文整理汇总了C++中VJSParms_callStaticFunction::GetReturnValue方法的典型用法代码示例。如果您正苦于以下问题:C++ VJSParms_callStaticFunction::GetReturnValue方法的具体用法?C++ VJSParms_callStaticFunction::GetReturnValue怎么用?C++ VJSParms_callStaticFunction::GetReturnValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VJSParms_callStaticFunction
的用法示例。
在下文中一共展示了VJSParms_callStaticFunction::GetReturnValue方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _GetBinary
void VJSStream::_GetBinary (VJSParms_callStaticFunction &ioParms, XBOX::VStream* inStream, bool inIsBuffer)
{
xbox_assert(inStream != NULL);
sLONG size;
void *buffer;
if (!ioParms.GetLongParam(1, &size) || size < 0) {
XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER_TYPE_NUMBER, "1");
ioParms.ReturnNullValue();
} else if (!size) {
if (inIsBuffer)
ioParms.ReturnValue(VJSBufferClass::NewInstance(ioParms.GetContext(), 0, NULL));
else
ioParms.ReturnValue(VJSBlob::NewInstance(ioParms.GetContext(), 0, NULL, ""));
} else if ((buffer = ::malloc(size)) == NULL) {
vThrowError(XBOX::VE_MEMORY_FULL);
ioParms.ReturnNullValue();
} else {
XBOX::VError error;
VSize bytesRead;
// Prevent error throwing for XBOX::VE_STREAM_EOF, this will allow to read less than requested.
{
StErrorContextInstaller context(false, true);
error = inStream->GetData(buffer, size, &bytesRead);
}
/*
// Do ::realloc()?
if (bytesRead < size)
buffer = ::realloc(buffer, bytesRead);
*/
if (error != XBOX::VE_OK && error != XBOX::VE_STREAM_EOF) {
XBOX::vThrowError(error);
ioParms.ReturnNullValue();
::free(buffer);
} else {
if (inIsBuffer)
ioParms.ReturnValue(VJSBufferClass::NewInstance(ioParms.GetContext(), bytesRead, buffer));
else
ioParms.ReturnValue(VJSBlob::NewInstance(ioParms.GetContext(), bytesRead, buffer, ""));
// Check if instance creation has succeed, if not free memory.
if (ioParms.GetReturnValue().IsNull())
::free(buffer);
}
}
}