本文整理汇总了C++中AvmCore::atomToScriptObject方法的典型用法代码示例。如果您正苦于以下问题:C++ AvmCore::atomToScriptObject方法的具体用法?C++ AvmCore::atomToScriptObject怎么用?C++ AvmCore::atomToScriptObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AvmCore
的用法示例。
在下文中一共展示了AvmCore::atomToScriptObject方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: convertForm
ArrayObject* HTTPFormClass::convertForm(std::vector<FormEntry>& vec)
{
AvmCore *core = this->core();
ArrayObject *out = this->toplevel()->arrayClass->newArray();
for (std::vector<FormEntry>::iterator it=vec.begin(); it!=vec.end(); it++)
{
ArrayObject* arr;
Stringp key = core->internStringUTF8((*it).name.data(), (*it).name.length());
Stringp value = core->internStringUTF8((*it).value.data(), (*it).value.length());
//we have it, append
if (out->hasStringProperty(key))
{
arr = (ArrayObject*) core->atomToScriptObject(out->getStringProperty(key));
arr->setUintProperty(arr->get_length(), value->atom());
}
//create array
else
{
arr = this->toplevel()->arrayClass->newArray();
arr->setUintProperty(0, value->atom());
out->setStringProperty(key, arr->atom());
}
}
return out;
}
示例2: _replace
Stringp StringClass::_replace(Stringp subject, Atom pattern, Atom replacementAtom)
{
AvmCore* core = this->core();
ScriptObject *replaceFunction = NULL;
Stringp replacement = NULL;
if (AvmCore::istype(replacementAtom, core->traits.function_itraits)) {
replaceFunction = AvmCore::atomToScriptObject(replacementAtom);
} else {
replacement = core->string(replacementAtom);
}
if (AvmCore::istype(pattern, core->traits.regexp_itraits)) {
// RegExp mode
RegExpObject *reObj = (RegExpObject*) core->atomToScriptObject(pattern);
if (replaceFunction) {
return core->string(reObj->replace(subject, replaceFunction));
} else {
return core->string(reObj->replace(subject, replacement));
}
} else {
// String replace mode
Stringp searchString = core->string(pattern);
int index = subject->indexOf(searchString);
if (index == -1) {
// Search string not found; return input unchanged.
return subject;
}
if (replaceFunction) {
// Invoke the replacement function to figure out the
// replacement string
Atom argv[4] = { undefinedAtom,
searchString->atom(),
core->uintToAtom(index),
subject->atom() };
replacement = core->string(toplevel()->op_call(replaceFunction->atom(),
3, argv));
}
Stringp out = subject->substring(0, index);
out = String::concatStrings(out, replacement);
out = String::concatStrings(out, subject->substring(index + searchString->length(), subject->length()));
return out;
}
}