void CXFA_ScriptContext::NormalMethodCall(CFXJSE_Value* pThis, const CFX_ByteStringC& szFuncName, CFXJSE_Arguments& args) { CXFA_Object* pObject = ToObject(pThis, nullptr); if (!pObject) return; CXFA_ScriptContext* lpScriptContext = pObject->GetDocument()->GetScriptContext(); pObject = lpScriptContext->GetVariablesThis(pObject); CFX_WideString wsFunName = CFX_WideString::FromUTF8(szFuncName); const XFA_METHODINFO* lpMethodInfo = GetMethodByName(pObject->GetElementType(), wsFunName.AsStringC()); if (!lpMethodInfo) return; (pObject->*(lpMethodInfo->lpfnCallback))(&args); }
int32_t CXFA_ScriptContext::GlobalPropTypeGetter( CFXJSE_Value* pOriginalValue, const CFX_ByteStringC& szPropName, FX_BOOL bQueryIn) { CXFA_Object* pObject = ToObject(pOriginalValue, nullptr); if (!pObject) return FXJSE_ClassPropType_None; CXFA_ScriptContext* lpScriptContext = pObject->GetDocument()->GetScriptContext(); pObject = lpScriptContext->GetVariablesThis(pObject); XFA_Element eType = pObject->GetElementType(); CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); if (GetMethodByName(eType, wsPropName.AsStringC())) { return FXJSE_ClassPropType_Method; } return FXJSE_ClassPropType_Property; }
bool HttpRequest::ParseStartLine(const StringPiece& data, HttpMessage::ErrorCode* error) { ErrorCode error_placeholder; if (error == NULL) error = &error_placeholder; static const size_t kMinHttpMethodLength = 3; size_t pos = data.find(' ', kMinHttpMethodLength); if (pos == StringPiece::npos) { *error = ERROR_START_LINE_NOT_COMPLETE; return false; } StringPiece method = data.substr(0, pos); StringTrim(&method); m_method = GetMethodByName(method); if (m_method == METHOD_UNKNOWN) { *error = ERROR_METHOD_NOT_FOUND; return false; } size_t prev_pos = pos + 1; pos = data.find(' ', prev_pos); StringPiece uri; if (pos == StringPiece::npos) { uri = data.substr(prev_pos); } else { uri = data.substr(prev_pos, pos - prev_pos); } StringTrim(&uri); uri.copy_to_string(&m_uri); if (pos != StringPiece::npos) { StringPiece version = data.substr(pos); StringTrim(&version); if (!ParseVersion(version)) { *error = ERROR_VERSION_UNSUPPORTED; return false; } } return true; }