本文整理汇总了C++中nsAString::IsLiteral方法的典型用法代码示例。如果您正苦于以下问题:C++ nsAString::IsLiteral方法的具体用法?C++ nsAString::IsLiteral怎么用?C++ nsAString::IsLiteral使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类nsAString
的用法示例。
在下文中一共展示了nsAString::IsLiteral方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
// convert a readable to a JSString, copying string data
// static
bool
XPCStringConvert::ReadableToJSVal(JSContext *cx,
const nsAString &readable,
nsStringBuffer** sharedBuffer,
MutableHandleValue vp)
{
*sharedBuffer = nullptr;
uint32_t length = readable.Length();
if (readable.IsLiteral()) {
JSString *str = JS_NewExternalString(cx,
static_cast<const jschar*>(readable.BeginReading()),
length, &sLiteralFinalizer);
if (!str)
return false;
vp.setString(str);
return true;
}
nsStringBuffer *buf = nsStringBuffer::FromString(readable);
if (buf) {
bool shared;
if (!StringBufferToJSVal(cx, buf, length, vp, &shared))
return false;
if (shared)
*sharedBuffer = buf;
return true;
}
// blech, have to copy.
JSString *str = JS_NewUCStringCopyN(cx, readable.BeginReading(), length);
if (!str)
return false;
vp.setString(str);
return true;
}