diff options
author | tsepez <tsepez@chromium.org> | 2016-04-15 13:15:12 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-15 13:15:12 -0700 |
commit | 018935c9304bebf13fbad20b124d775ccae87fae (patch) | |
tree | a8db5b909a5cef43317d924919e7c1be77c505c3 /fpdfsdk/jsapi | |
parent | c3b26b1479824aa5ce745c220a82de7528bc26a9 (diff) | |
download | pdfium-018935c9304bebf13fbad20b124d775ccae87fae.tar.xz |
Pass WideStrings without narrowing to c_str in javascript/
Avoid string duplication when the caller already has one.
Review URL: https://codereview.chromium.org/1883273003
Diffstat (limited to 'fpdfsdk/jsapi')
-rw-r--r-- | fpdfsdk/jsapi/fxjs_v8.cpp | 50 | ||||
-rw-r--r-- | fpdfsdk/jsapi/include/fxjs_v8.h | 27 |
2 files changed, 37 insertions, 40 deletions
diff --git a/fpdfsdk/jsapi/fxjs_v8.cpp b/fpdfsdk/jsapi/fxjs_v8.cpp index c66cf91b56..a471d5613d 100644 --- a/fpdfsdk/jsapi/fxjs_v8.cpp +++ b/fpdfsdk/jsapi/fxjs_v8.cpp @@ -583,25 +583,24 @@ void FXJS_FreePrivate(v8::Local<v8::Object> pObj) { } v8::Local<v8::String> FXJS_WSToJSString(v8::Isolate* pIsolate, - const wchar_t* PropertyName, - int Len) { - CFX_WideString ws = CFX_WideString(PropertyName, Len); - CFX_ByteString bs = ws.UTF8Encode(); + const CFX_WideString& wsPropertyName) { + CFX_ByteString bs = wsPropertyName.UTF8Encode(); if (!pIsolate) pIsolate = v8::Isolate::GetCurrent(); return v8::String::NewFromUtf8(pIsolate, bs.c_str(), - v8::NewStringType::kNormal) + v8::NewStringType::kNormal, bs.GetLength()) .ToLocalChecked(); } -v8::Local<v8::Value> FXJS_GetObjectElement(v8::Isolate* pIsolate, - v8::Local<v8::Object> pObj, - const wchar_t* PropertyName) { +v8::Local<v8::Value> FXJS_GetObjectElement( + v8::Isolate* pIsolate, + v8::Local<v8::Object> pObj, + const CFX_WideString& wsPropertyName) { if (pObj.IsEmpty()) return v8::Local<v8::Value>(); v8::Local<v8::Value> val; if (!pObj->Get(pIsolate->GetCurrentContext(), - FXJS_WSToJSString(pIsolate, PropertyName)) + FXJS_WSToJSString(pIsolate, wsPropertyName)) .ToLocal(&val)) return v8::Local<v8::Value>(); return val; @@ -619,82 +618,83 @@ v8::Local<v8::Array> FXJS_GetObjectElementNames(v8::Isolate* pIsolate, void FXJS_PutObjectString(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName, - const wchar_t* sValue) { + const CFX_WideString& wsPropertyName, + const CFX_WideString& wsValue) { if (pObj.IsEmpty()) return; pObj->Set(pIsolate->GetCurrentContext(), - FXJS_WSToJSString(pIsolate, PropertyName), - FXJS_WSToJSString(pIsolate, sValue)) + FXJS_WSToJSString(pIsolate, wsPropertyName), + FXJS_WSToJSString(pIsolate, wsValue)) .FromJust(); } void FXJS_PutObjectNumber(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName, + const CFX_WideString& wsPropertyName, int nValue) { if (pObj.IsEmpty()) return; pObj->Set(pIsolate->GetCurrentContext(), - FXJS_WSToJSString(pIsolate, PropertyName), + FXJS_WSToJSString(pIsolate, wsPropertyName), v8::Int32::New(pIsolate, nValue)) .FromJust(); } void FXJS_PutObjectNumber(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName, + const CFX_WideString& wsPropertyName, float fValue) { if (pObj.IsEmpty()) return; pObj->Set(pIsolate->GetCurrentContext(), - FXJS_WSToJSString(pIsolate, PropertyName), + FXJS_WSToJSString(pIsolate, wsPropertyName), v8::Number::New(pIsolate, (double)fValue)) .FromJust(); } void FXJS_PutObjectNumber(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName, + const CFX_WideString& wsPropertyName, double dValue) { if (pObj.IsEmpty()) return; pObj->Set(pIsolate->GetCurrentContext(), - FXJS_WSToJSString(pIsolate, PropertyName), + FXJS_WSToJSString(pIsolate, wsPropertyName), v8::Number::New(pIsolate, (double)dValue)) .FromJust(); } void FXJS_PutObjectBoolean(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName, + const CFX_WideString& wsPropertyName, bool bValue) { if (pObj.IsEmpty()) return; pObj->Set(pIsolate->GetCurrentContext(), - FXJS_WSToJSString(pIsolate, PropertyName), + FXJS_WSToJSString(pIsolate, wsPropertyName), v8::Boolean::New(pIsolate, bValue)) .FromJust(); } void FXJS_PutObjectObject(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName, + const CFX_WideString& wsPropertyName, v8::Local<v8::Object> pPut) { if (pObj.IsEmpty()) return; pObj->Set(pIsolate->GetCurrentContext(), - FXJS_WSToJSString(pIsolate, PropertyName), pPut) + FXJS_WSToJSString(pIsolate, wsPropertyName), pPut) .FromJust(); } void FXJS_PutObjectNull(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName) { + const CFX_WideString& wsPropertyName) { if (pObj.IsEmpty()) return; pObj->Set(pIsolate->GetCurrentContext(), - FXJS_WSToJSString(pIsolate, PropertyName), v8::Local<v8::Object>()) + FXJS_WSToJSString(pIsolate, wsPropertyName), + v8::Local<v8::Object>()) .FromJust(); } diff --git a/fpdfsdk/jsapi/include/fxjs_v8.h b/fpdfsdk/jsapi/include/fxjs_v8.h index 34ff377d92..235f3bc902 100644 --- a/fpdfsdk/jsapi/include/fxjs_v8.h +++ b/fpdfsdk/jsapi/include/fxjs_v8.h @@ -229,50 +229,47 @@ void FXJS_SetPrivate(v8::Isolate* pIsolate, void* FXJS_GetPrivate(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj); void FXJS_FreePrivate(void* p); void FXJS_FreePrivate(v8::Local<v8::Object> pObj); - void FXJS_Error(v8::Isolate* isolate, const CFX_WideString& message); -v8::Local<v8::String> FXJS_WSToJSString(v8::Isolate* pIsolate, - const wchar_t* PropertyName, - int Len = -1); +v8::Local<v8::String> FXJS_WSToJSString(v8::Isolate* pIsolate, + const CFX_WideString& wsPropertyName); v8::Local<v8::Value> FXJS_GetObjectElement(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName); + const CFX_WideString& PropertyName); v8::Local<v8::Array> FXJS_GetObjectElementNames(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj); - v8::Local<v8::Value> FXJS_GetArrayElement(v8::Isolate* pIsolate, v8::Local<v8::Array> pArray, unsigned index); -unsigned FXJS_GetArrayLength(v8::Local<v8::Array> pArray); +unsigned FXJS_GetArrayLength(v8::Local<v8::Array> pArray); void FXJS_PutObjectString(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName, - const wchar_t* sValue); + const CFX_WideString& wsPropertyName, + const CFX_WideString& wsValue); void FXJS_PutObjectNumber(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName, + const CFX_WideString& PropertyName, int nValue); void FXJS_PutObjectNumber(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName, + const CFX_WideString& PropertyName, float fValue); void FXJS_PutObjectNumber(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName, + const CFX_WideString& PropertyName, double dValue); void FXJS_PutObjectBoolean(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName, + const CFX_WideString& PropertyName, bool bValue); void FXJS_PutObjectObject(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName, + const CFX_WideString& PropertyName, v8::Local<v8::Object> pPut); void FXJS_PutObjectNull(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, - const wchar_t* PropertyName); + const CFX_WideString& PropertyName); unsigned FXJS_PutArrayElement(v8::Isolate* pIsolate, v8::Local<v8::Array> pArray, unsigned index, |