Lines Matching full:value
146 void SkScriptEngine2::addTokenConst(SkScriptValue2* value, AddTokenRegister reg,
148 if (value->fIsConstant == SkScriptValue2::kConstant && convertTo(toType, value))
150 addTokenValue(*value, reg);
152 value->fIsWritten = SkScriptValue2::kWritten;
153 value->fType = toType;
170 void SkScriptEngine2::addTokenValue(const SkScriptValue2& value, AddTokenRegister reg) {
171 if (value.isConstant() == false) {
182 switch (value.fType) {
185 addTokenInt(value.fOperand.fS32);
193 addTokenScalar(value.fOperand.fScalar);
201 addTokenString(*value.fOperand.fString);
338 bool SkScriptEngine2::convertTo(SkOperand2::OpType toType, SkScriptValue2* value ) {
339 SkOperand2::OpType type = value->fType;
343 if (handleUnbox(value) == false)
345 return convertTo(toType, value);
347 return ConvertTo(this, toType, value);
387 bool SkScriptEngine2::evaluateScript(const char** scriptPtr, SkScriptValue2* value) {
394 success = innerScript(scriptPtr, value);
396 inner = value->fOperand.fString->c_str();
400 success = innerScript(scriptPtr, value);
438 SkScriptValue2 value;
439 bool success = innerScript(scriptPtr, &value);
443 *params->append() = value;
464 bool SkScriptEngine2::innerScript(const char** scriptPtr, SkScriptValue2* value) {
489 if (value->fOperand.fArray->count() == 0)
490 value->fOperand.fArray->setType(type = tokenValue.fType);
492 type = value->fOperand.fArray->getType();
496 *value->fOperand.fArray->append() = tokenValue.fOperand;
630 operand.fOperand.fArray = value->fOperand.fArray = new SkOpArray(fReturnType);
631 track(value->fOperand.fArray);
723 topType == SkOperand2::kString && fReturnType != SkOperand2::kNoType) { // if result is a string, give handle property a chance to convert it to the property value
749 if (value) {
752 fValueStack.pop(value);
753 if (value->fType != fReturnType && value->fType == SkOperand2::kObject &&
755 convertTo(fReturnType, value);
976 SkScriptValue2 value;
977 fValueStack.pop(&value);
978 SkASSERT(value.fType == SkOperand2::kS32 || value.fType == SkOperand2::kScalar); // !!! add error handling (although, could permit strings eventually)
979 int index = value.fType == SkOperand2::kScalar ? SkScalarFloor(value.fOperand.fScalar) :
980 value.fOperand.fS32;
1182 bool SkScriptEngine2::ConvertTo(SkScriptEngine2* engine, SkOperand2::OpType toType, SkScriptValue2* value ) {
1183 SkASSERT(value);
1184 SkOperand2::OpType type = value->fType;
1187 SkOperand2& operand = value->fOperand;
1227 value->fType = toType;
1242 bool SkScriptEngine2::ValueToString(const SkScriptValue2& value, SkString* string) {
1243 switch (value.fType) {
1246 string->appendS32(value.fOperand.fS32);
1250 string->appendScalar(value.fOperand.fScalar);
1253 string->set(*value.fOperand.fString);
1483 SkScriptValue2 value;
1486 SkASSERT(engine.evaluateScript(&scriptPtr, &value) == true);
1487 SkASSERT(value.fType == scriptTests[index].fType);
1489 switch (value.fType) {
1491 if (value.fOperand.fS32 != scriptTests[index].fIntAnswer)
1492 SkDEBUGF(("script '%s' == value %d != expected answer %d\n", script, value.fOperand.fS32, scriptTests[index].fIntAnswer));
1493 SkASSERT(value.fOperand.fS32 == scriptTests[index].fIntAnswer);
1496 error = SkScalarAbs(value.fOperand.fScalar - scriptTests[index].fScalarAnswer);
1499 SkDEBUGF(("script '%s' == value %g != expected answer %g\n", script, value.fOperand.fScalar / (1.0f * SK_Scalar1), scriptTests[index].fScalarAnswer / (1.0f * SK_Scalar1)));
1504 SkASSERT(value.fOperand.fString->equals(scriptTests[index].fStringAnswer));