[lfs-patches] r3562 - in trunk: qtwebengine qtwebengine-opensource-src

bdubbs at higgs.linuxfromscratch.org bdubbs at higgs.linuxfromscratch.org
Sat May 20 07:40:47 PDT 2017


Author: bdubbs
Date: Sat May 20 07:40:47 2017
New Revision: 3562

Log:
Make qtwebengine patch name consistent with the book

Added:
   trunk/qtwebengine/
      - copied from r3561, trunk/qtwebengine-opensource-src/
   trunk/qtwebengine/qtwebengine-5.8.0-gcc7-1.patch
      - copied unchanged from r3561, trunk/qtwebengine-opensource-src/qtwebengine-opensource-src-5.8.0-gcc7-1.patch
Deleted:
   trunk/qtwebengine-opensource-src/
   trunk/qtwebengine/qtwebengine-opensource-src-5.8.0-gcc7-1.patch

Copied: trunk/qtwebengine/qtwebengine-5.8.0-gcc7-1.patch (from r3561, trunk/qtwebengine-opensource-src/qtwebengine-opensource-src-5.8.0-gcc7-1.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/qtwebengine/qtwebengine-5.8.0-gcc7-1.patch	Sat May 20 07:40:47 2017	(r3562, copy of r3561, trunk/qtwebengine-opensource-src/qtwebengine-opensource-src-5.8.0-gcc7-1.patch)
@@ -0,0 +1,697 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2017-05-15
+Initial Package Version: 5.8.0
+Upstream Status: Believed to be applied.
+Origin: Found at fedora.
+Description: Build fixes for gcc7.  This merges fedora's
+qtwebengine-opensource-src-5.8.0-pdfium-gcc7.patch
+qtwebengine-opensource-src-5.8.0-v8-gcc7.patch
+qtwebengine-opensource-src-5.8.0-wtf-gcc7.patch
+
+If you are building qtwebengine as part of the full qt5 tarball,
+cd to the qtwebengine directory and then apply this patch with
+patch -p1.
+
+diff -Naur a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/app.cpp b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/app.cpp
+--- a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/app.cpp	2017-01-03 09:28:53.000000000 +0000
++++ b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/app.cpp	2017-05-15 21:26:26.746016429 +0100
+@@ -454,7 +454,7 @@
+ }
+ 
+ void app::ClearTimerCommon(const CJS_Value& param) {
+-  if (param.GetType() != CJS_Value::VT_fxobject)
++  if (param.GetType() != CJS_Value::VT_object)
+     return;
+ 
+   v8::Local<v8::Object> pObj = param.ToV8Object();
+diff -Naur a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/Document.cpp b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/Document.cpp
+--- a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/Document.cpp	2017-01-03 09:28:53.000000000 +0000
++++ b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/Document.cpp	2017-05-15 21:26:26.746016429 +0100
+@@ -411,22 +411,20 @@
+ 
+   int nlength = params.size();
+   if (nlength == 9) {
+-    if (params[8].GetType() == CJS_Value::VT_fxobject) {
++    if (params[8].GetType() == CJS_Value::VT_object) {
+       v8::Local<v8::Object> pObj = params[8].ToV8Object();
+-      {
+-        if (FXJS_GetObjDefnID(pObj) == CJS_PrintParamsObj::g_nObjDefnID) {
+-          if (CJS_Object* pJSObj = params[8].ToCJSObject()) {
+-            if (PrintParamsObj* pprintparamsObj =
+-                    (PrintParamsObj*)pJSObj->GetEmbedObject()) {
+-              bUI = pprintparamsObj->bUI;
+-              nStart = pprintparamsObj->nStart;
+-              nEnd = pprintparamsObj->nEnd;
+-              bSilent = pprintparamsObj->bSilent;
+-              bShrinkToFit = pprintparamsObj->bShrinkToFit;
+-              bPrintAsImage = pprintparamsObj->bPrintAsImage;
+-              bReverse = pprintparamsObj->bReverse;
+-              bAnnotations = pprintparamsObj->bAnnotations;
+-            }
++      if (FXJS_GetObjDefnID(pObj) == CJS_PrintParamsObj::g_nObjDefnID) {
++        if (CJS_Object* pJSObj = params[8].ToCJSObject()) {
++          if (PrintParamsObj* pprintparamsObj =
++                  static_cast<PrintParamsObj*>(pJSObj->GetEmbedObject())) {
++            bUI = pprintparamsObj->bUI;
++            nStart = pprintparamsObj->nStart;
++            nEnd = pprintparamsObj->nEnd;
++            bSilent = pprintparamsObj->bSilent;
++            bShrinkToFit = pprintparamsObj->bShrinkToFit;
++            bPrintAsImage = pprintparamsObj->bPrintAsImage;
++            bReverse = pprintparamsObj->bReverse;
++            bAnnotations = pprintparamsObj->bAnnotations;
+           }
+         }
+       }
+@@ -597,18 +595,16 @@
+     v8::Local<v8::Object> pObj = params[0].ToV8Object();
+     v8::Local<v8::Value> pValue = FXJS_GetObjectElement(isolate, pObj, L"cURL");
+     if (!pValue.IsEmpty())
+-      strURL =
+-          CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
++      strURL = CJS_Value(pRuntime, pValue).ToCFXWideString();
+ 
+     pValue = FXJS_GetObjectElement(isolate, pObj, L"bFDF");
+-    bFDF = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToBool();
++    bFDF = CJS_Value(pRuntime, pValue).ToBool();
+ 
+     pValue = FXJS_GetObjectElement(isolate, pObj, L"bEmpty");
+-    bEmpty = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToBool();
++    bEmpty = CJS_Value(pRuntime, pValue).ToBool();
+ 
+     pValue = FXJS_GetObjectElement(isolate, pObj, L"aFields");
+-    aFields.Attach(
+-        CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToV8Array());
++    aFields.Attach(CJS_Value(pRuntime, pValue).ToV8Array());
+   }
+ 
+   CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
+@@ -691,25 +687,22 @@
+     v8::Local<v8::Object> pObj = params[0].ToV8Object();
+ 
+     v8::Local<v8::Value> pValue = FXJS_GetObjectElement(isolate, pObj, L"bUI");
+-    bUI = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToInt();
++    bUI = CJS_Value(pRuntime, pValue).ToInt();
+ 
+     pValue = FXJS_GetObjectElement(isolate, pObj, L"cTo");
+-    cTo = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
++    cTo = CJS_Value(pRuntime, pValue).ToCFXWideString();
+ 
+     pValue = FXJS_GetObjectElement(isolate, pObj, L"cCc");
+-    cCc = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
++    cCc = CJS_Value(pRuntime, pValue).ToCFXWideString();
+ 
+     pValue = FXJS_GetObjectElement(isolate, pObj, L"cBcc");
+-    cBcc =
+-        CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
++    cBcc = CJS_Value(pRuntime, pValue).ToCFXWideString();
+ 
+     pValue = FXJS_GetObjectElement(isolate, pObj, L"cSubject");
+-    cSubject =
+-        CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
++    cSubject = CJS_Value(pRuntime, pValue).ToCFXWideString();
+ 
+     pValue = FXJS_GetObjectElement(isolate, pObj, L"cMsg");
+-    cMsg =
+-        CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
++    cMsg = CJS_Value(pRuntime, pValue).ToCFXWideString();
+   }
+ 
+   pRuntime->BeginBlock();
+diff -Naur a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/global.cpp b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/global.cpp
+--- a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/global.cpp	2017-01-03 09:28:53.000000000 +0000
++++ b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/global.cpp	2017-05-15 21:26:26.746016429 +0100
+@@ -17,63 +17,6 @@
+ #include "fpdfsdk/javascript/cjs_context.h"
+ #include "fpdfsdk/javascript/resource.h"
+ 
+-// Helper class for compile-time calculation of hash values in order to
+-// avoid having global object initializers.
+-template <unsigned ACC, wchar_t... Ns>
+-struct CHash;
+-
+-// Only needed to hash single-character strings.
+-template <wchar_t N>
+-struct CHash<N> {
+-  static const unsigned value = N;
+-};
+-
+-template <unsigned ACC, wchar_t N>
+-struct CHash<ACC, N> {
+-  static const unsigned value = (ACC * 1313LLU + N) & 0xFFFFFFFF;
+-};
+-
+-template <unsigned ACC, wchar_t N, wchar_t... Ns>
+-struct CHash<ACC, N, Ns...> {
+-  static const unsigned value = CHash<CHash<ACC, N>::value, Ns...>::value;
+-};
+-
+-const unsigned int JSCONST_nStringHash =
+-    CHash<'s', 't', 'r', 'i', 'n', 'g'>::value;
+-const unsigned int JSCONST_nNumberHash =
+-    CHash<'n', 'u', 'm', 'b', 'e', 'r'>::value;
+-const unsigned int JSCONST_nBoolHash =
+-    CHash<'b', 'o', 'o', 'l', 'e', 'a', 'n'>::value;
+-const unsigned int JSCONST_nDateHash = CHash<'d', 'a', 't', 'e'>::value;
+-const unsigned int JSCONST_nObjectHash =
+-    CHash<'o', 'b', 'j', 'e', 'c', 't'>::value;
+-const unsigned int JSCONST_nFXobjHash = CHash<'f', 'x', 'o', 'b', 'j'>::value;
+-const unsigned int JSCONST_nNullHash = CHash<'n', 'u', 'l', 'l'>::value;
+-const unsigned int JSCONST_nUndefHash =
+-    CHash<'u', 'n', 'd', 'e', 'f', 'i', 'n', 'e', 'd'>::value;
+-
+-static unsigned JS_CalcHash(const wchar_t* main) {
+-  return (unsigned)FX_HashCode_GetW(CFX_WideStringC(main), false);
+-}
+-
+-#ifndef NDEBUG
+-class HashVerify {
+- public:
+-  HashVerify();
+-} g_hashVerify;
+-
+-HashVerify::HashVerify() {
+-  ASSERT(JSCONST_nStringHash == JS_CalcHash(kFXJSValueNameString));
+-  ASSERT(JSCONST_nNumberHash == JS_CalcHash(kFXJSValueNameNumber));
+-  ASSERT(JSCONST_nBoolHash == JS_CalcHash(kFXJSValueNameBoolean));
+-  ASSERT(JSCONST_nDateHash == JS_CalcHash(kFXJSValueNameDate));
+-  ASSERT(JSCONST_nObjectHash == JS_CalcHash(kFXJSValueNameObject));
+-  ASSERT(JSCONST_nFXobjHash == JS_CalcHash(kFXJSValueNameFxobj));
+-  ASSERT(JSCONST_nNullHash == JS_CalcHash(kFXJSValueNameNull));
+-  ASSERT(JSCONST_nUndefHash == JS_CalcHash(kFXJSValueNameUndefined));
+-}
+-#endif
+-
+ BEGIN_JS_STATIC_CONST(CJS_Global)
+ END_JS_STATIC_CONST()
+ 
+@@ -335,9 +278,8 @@
+     CFX_WideString ws =
+         FXJS_ToString(isolate, FXJS_GetArrayElement(isolate, pKeyList, i));
+     CFX_ByteString sKey = ws.UTF8Encode();
+-
+     v8::Local<v8::Value> v = FXJS_GetObjectElement(isolate, pObj, ws);
+-    switch (GET_VALUE_TYPE(v)) {
++    switch (CJS_Value::GetValueType(v)) {
+       case CJS_Value::VT_number: {
+         CJS_KeyValue* pObjElement = new CJS_KeyValue;
+         pObjElement->nType = JS_GLOBALDATA_TYPE_NUMBER;
+@@ -353,8 +295,7 @@
+         array.Add(pObjElement);
+       } break;
+       case CJS_Value::VT_string: {
+-        CFX_ByteString sValue =
+-            CJS_Value(pRuntime, v, CJS_Value::VT_string).ToCFXByteString();
++        CFX_ByteString sValue = CJS_Value(pRuntime, v).ToCFXByteString();
+         CJS_KeyValue* pObjElement = new CJS_KeyValue;
+         pObjElement->nType = JS_GLOBALDATA_TYPE_STRING;
+         pObjElement->sKey = sKey;
+@@ -500,26 +441,3 @@
+   m_mapGlobal[propname] = pNewData;
+   return TRUE;
+ }
+-
+-CJS_Value::Type GET_VALUE_TYPE(v8::Local<v8::Value> p) {
+-  const unsigned int nHash = JS_CalcHash(FXJS_GetTypeof(p));
+-
+-  if (nHash == JSCONST_nUndefHash)
+-    return CJS_Value::VT_undefined;
+-  if (nHash == JSCONST_nNullHash)
+-    return CJS_Value::VT_null;
+-  if (nHash == JSCONST_nStringHash)
+-    return CJS_Value::VT_string;
+-  if (nHash == JSCONST_nNumberHash)
+-    return CJS_Value::VT_number;
+-  if (nHash == JSCONST_nBoolHash)
+-    return CJS_Value::VT_boolean;
+-  if (nHash == JSCONST_nDateHash)
+-    return CJS_Value::VT_date;
+-  if (nHash == JSCONST_nObjectHash)
+-    return CJS_Value::VT_object;
+-  if (nHash == JSCONST_nFXobjHash)
+-    return CJS_Value::VT_fxobject;
+-
+-  return CJS_Value::VT_unknown;
+-}
+diff -Naur a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Define.h b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Define.h
+--- a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Define.h	2017-01-03 09:28:53.000000000 +0000
++++ b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Define.h	2017-05-15 21:26:26.746016429 +0100
+@@ -111,7 +111,7 @@
+   CJS_Object* pJSObj = (CJS_Object*)FXJS_GetPrivate(isolate, info.Holder());
+   C* pObj = reinterpret_cast<C*>(pJSObj->GetEmbedObject());
+   CFX_WideString sError;
+-  CJS_PropValue propValue(CJS_Value(pRuntime, value, CJS_Value::VT_unknown));
++  CJS_PropValue propValue(CJS_Value(pRuntime, value));
+   propValue.StartSetting();
+   if (!(pObj->*M)(pContext, propValue, sError)) {
+     FXJS_Error(isolate, JSFormatErrorString(class_name_string, prop_name_string,
+@@ -149,7 +149,7 @@
+   IJS_Context* pContext = pRuntime->GetCurrentContext();
+   std::vector<CJS_Value> parameters;
+   for (unsigned int i = 0; i < (unsigned int)info.Length(); i++) {
+-    parameters.push_back(CJS_Value(pRuntime, info[i], CJS_Value::VT_unknown));
++    parameters.push_back(CJS_Value(pRuntime, info[i]));
+   }
+   CJS_Value valueRes(pRuntime);
+   CJS_Object* pJSObj = (CJS_Object*)FXJS_GetPrivate(isolate, info.Holder());
+@@ -404,7 +404,7 @@
+   CFX_WideString propname = CFX_WideString::FromUTF8(
+       CFX_ByteStringC(*utf8_value, utf8_value.length()));
+   CFX_WideString sError;
+-  CJS_PropValue PropValue(CJS_Value(pRuntime, value, CJS_Value::VT_unknown));
++  CJS_PropValue PropValue(CJS_Value(pRuntime, value));
+   PropValue.StartSetting();
+   if (!pObj->DoProperty(pContext, propname.c_str(), PropValue, sError)) {
+     FXJS_Error(isolate, JSFormatErrorString(class_name, "PutProperty", sError));
+@@ -447,7 +447,7 @@
+   IJS_Context* pContext = pRuntime->GetCurrentContext();
+   std::vector<CJS_Value> parameters;
+   for (unsigned int i = 0; i < (unsigned int)info.Length(); i++) {
+-    parameters.push_back(CJS_Value(pRuntime, info[i], CJS_Value::VT_unknown));
++    parameters.push_back(CJS_Value(pRuntime, info[i]));
+   }
+   CJS_Value valueRes(pRuntime);
+   CFX_WideString sError;
+@@ -485,6 +485,4 @@
+     }                                                                        \
+   }
+ 
+-CJS_Value::Type GET_VALUE_TYPE(v8::Local<v8::Value> p);
+-
+ #endif  // FPDFSDK_JAVASCRIPT_JS_DEFINE_H_
+diff -Naur a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp
+--- a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp	2017-01-03 09:28:53.000000000 +0000
++++ b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp	2017-05-15 21:26:26.746016429 +0100
+@@ -22,11 +22,10 @@
+   return *(double*)g_nan;
+ }
+ 
+-CJS_Value::CJS_Value(CJS_Runtime* pRuntime)
+-    : m_eType(VT_unknown), m_pJSRuntime(pRuntime) {}
++CJS_Value::CJS_Value(CJS_Runtime* pRuntime) : m_pJSRuntime(pRuntime) {}
+ 
+-CJS_Value::CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue, Type t)
+-    : m_eType(t), m_pValue(pValue), m_pJSRuntime(pRuntime) {}
++CJS_Value::CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue)
++    : m_pValue(pValue), m_pJSRuntime(pRuntime) {}
+ 
+ CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const int& iValue)
+     : m_pJSRuntime(pRuntime) {
+@@ -48,23 +47,11 @@
+   operator=(dValue);
+ }
+ 
+-CJS_Value::CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Object> pJsObj)
+-    : m_pJSRuntime(pRuntime) {
+-  operator=(pJsObj);
+-}
+-
+ CJS_Value::CJS_Value(CJS_Runtime* pRuntime, CJS_Object* pJsObj)
+     : m_pJSRuntime(pRuntime) {
+   operator=(pJsObj);
+ }
+ 
+-CJS_Value::CJS_Value(CJS_Runtime* pRuntime, CJS_Document* pJsDoc)
+-    : m_pJSRuntime(pRuntime) {
+-  m_eType = VT_object;
+-  if (pJsDoc)
+-    m_pValue = pJsDoc->ToV8Object();
+-}
+-
+ CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const FX_WCHAR* pWstr)
+     : m_pJSRuntime(pRuntime) {
+   operator=(pWstr);
+@@ -84,19 +71,17 @@
+ 
+ CJS_Value::CJS_Value(const CJS_Value& other) = default;
+ 
+-void CJS_Value::Attach(v8::Local<v8::Value> pValue, Type t) {
++void CJS_Value::Attach(v8::Local<v8::Value> pValue) {
+   m_pValue = pValue;
+-  m_eType = t;
+ }
+ 
+ void CJS_Value::Attach(CJS_Value* pValue) {
+   if (pValue)
+-    Attach(pValue->ToV8Value(), pValue->GetType());
++    Attach(pValue->ToV8Value());
+ }
+ 
+ void CJS_Value::Detach() {
+   m_pValue = v8::Local<v8::Value>();
+-  m_eType = VT_unknown;
+ }
+ 
+ int CJS_Value::ToInt() const {
+@@ -146,7 +131,7 @@
+ 
+ void CJS_Value::MaybeCoerceToNumber() {
+   bool bAllowNaN = false;
+-  if (m_eType == VT_string) {
++  if (GetType() == VT_string) {
+     CFX_ByteString bstr = ToCFXByteString();
+     if (bstr.GetLength() == 0)
+       return;
+@@ -162,32 +147,26 @@
+   if (std::isnan(num->Value()) && !bAllowNaN)
+     return;
+   m_pValue = num;
+-  m_eType = VT_number;
+ }
+ 
+ void CJS_Value::operator=(int iValue) {
+   m_pValue = FXJS_NewNumber(m_pJSRuntime->GetIsolate(), iValue);
+-  m_eType = VT_number;
+ }
+ 
+ void CJS_Value::operator=(bool bValue) {
+   m_pValue = FXJS_NewBoolean(m_pJSRuntime->GetIsolate(), bValue);
+-  m_eType = VT_boolean;
+ }
+ 
+ void CJS_Value::operator=(double dValue) {
+   m_pValue = FXJS_NewNumber(m_pJSRuntime->GetIsolate(), dValue);
+-  m_eType = VT_number;
+ }
+ 
+ void CJS_Value::operator=(float fValue) {
+   m_pValue = FXJS_NewNumber(m_pJSRuntime->GetIsolate(), fValue);
+-  m_eType = VT_number;
+ }
+ 
+ void CJS_Value::operator=(v8::Local<v8::Object> pObj) {
+   m_pValue = FXJS_NewObject(m_pJSRuntime->GetIsolate(), pObj);
+-  m_eType = VT_fxobject;
+ }
+ 
+ void CJS_Value::operator=(CJS_Object* pObj) {
+@@ -195,21 +174,12 @@
+     operator=(pObj->ToV8Object());
+ }
+ 
+-void CJS_Value::operator=(CJS_Document* pJsDoc) {
+-  m_eType = VT_object;
+-  if (pJsDoc) {
+-    m_pValue = pJsDoc->ToV8Object();
+-  }
+-}
+-
+ void CJS_Value::operator=(const FX_WCHAR* pWstr) {
+   m_pValue = FXJS_NewString(m_pJSRuntime->GetIsolate(), (wchar_t*)pWstr);
+-  m_eType = VT_string;
+ }
+ 
+ void CJS_Value::SetNull() {
+   m_pValue = FXJS_NewNull();
+-  m_eType = VT_null;
+ }
+ 
+ void CJS_Value::operator=(const FX_CHAR* pStr) {
+@@ -219,36 +189,34 @@
+ void CJS_Value::operator=(CJS_Array& array) {
+   m_pValue =
+       FXJS_NewObject2(m_pJSRuntime->GetIsolate(), (v8::Local<v8::Array>)array);
+-  m_eType = VT_object;
+ }
+ 
+ void CJS_Value::operator=(CJS_Date& date) {
+   m_pValue = FXJS_NewDate(m_pJSRuntime->GetIsolate(), (double)date);
+-  m_eType = VT_date;
+ }
+ 
+ void CJS_Value::operator=(CJS_Value value) {
+   m_pValue = value.ToV8Value();
+-  m_eType = value.m_eType;
+   m_pJSRuntime = value.m_pJSRuntime;
+ }
+ 
+-CJS_Value::Type CJS_Value::GetType() const {
+-  if (m_pValue.IsEmpty())
++// static
++CJS_Value::Type CJS_Value::GetValueType(v8::Local<v8::Value> value) {
++  if (value.IsEmpty())
+     return VT_unknown;
+-  if (m_pValue->IsString())
++  if (value->IsString())
+     return VT_string;
+-  if (m_pValue->IsNumber())
++  if (value->IsNumber())
+     return VT_number;
+-  if (m_pValue->IsBoolean())
++  if (value->IsBoolean())
+     return VT_boolean;
+-  if (m_pValue->IsDate())
++  if (value->IsDate())
+     return VT_date;
+-  if (m_pValue->IsObject())
++  if (value->IsObject())
+     return VT_object;
+-  if (m_pValue->IsNull())
++  if (value->IsNull())
+     return VT_null;
+-  if (m_pValue->IsUndefined())
++  if (value->IsUndefined())
+     return VT_undefined;
+   return VT_unknown;
+ }
+@@ -427,7 +395,7 @@
+     return;
+   v8::Local<v8::Value> p =
+       FXJS_GetArrayElement(m_pJSRuntime->GetIsolate(), m_pArray, index);
+-  value.Attach(p, CJS_Value::VT_object);
++  value.Attach(p);
+ }
+ 
+ void CJS_Array::SetElement(unsigned index, CJS_Value value) {
+@@ -899,7 +867,7 @@
+     v8::Local<v8::Value> v8Value =
+         FXJS_GetObjectElement(pRuntime->GetIsolate(), pObj, property);
+     if (!v8Value->IsUndefined())
+-      result[i] = CJS_Value(pRuntime, v8Value, CJS_Value::VT_unknown);
++      result[i] = CJS_Value(pRuntime, v8Value);
+   }
+   va_end(ap);
+   return result;
+diff -Naur a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.h b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.h
+--- a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.h	2017-01-03 09:28:53.000000000 +0000
++++ b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.h	2017-05-15 21:26:26.747016421 +0100
+@@ -27,20 +27,17 @@
+     VT_boolean,
+     VT_date,
+     VT_object,
+-    VT_fxobject,
+     VT_null,
+     VT_undefined
+   };
+ 
+   CJS_Value(CJS_Runtime* pRuntime);
+-  CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue, Type t);
++  CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue);
+   CJS_Value(CJS_Runtime* pRuntime, const int& iValue);
+   CJS_Value(CJS_Runtime* pRuntime, const double& dValue);
+   CJS_Value(CJS_Runtime* pRuntime, const float& fValue);
+   CJS_Value(CJS_Runtime* pRuntime, const bool& bValue);
+-  CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Object>);
+-  CJS_Value(CJS_Runtime* pRuntime, CJS_Object*);
+-  CJS_Value(CJS_Runtime* pRuntime, CJS_Document*);
++  CJS_Value(CJS_Runtime* pRuntime, CJS_Object* pObj);
+   CJS_Value(CJS_Runtime* pRuntime, const FX_CHAR* pStr);
+   CJS_Value(CJS_Runtime* pRuntime, const FX_WCHAR* pWstr);
+   CJS_Value(CJS_Runtime* pRuntime, CJS_Array& array);
+@@ -49,11 +46,12 @@
+   CJS_Value(const CJS_Value& other);
+ 
+   void SetNull();
+-  void Attach(v8::Local<v8::Value> pValue, Type t);
++  void Attach(v8::Local<v8::Value> pValue);
+   void Attach(CJS_Value* pValue);
+   void Detach();
+ 
+-  Type GetType() const;
++  static Type GetValueType(v8::Local<v8::Value> value);
++  Type GetType() const { return GetValueType(m_pValue); }
+   int ToInt() const;
+   bool ToBool() const;
+   double ToDouble() const;
+@@ -66,8 +64,7 @@
+   v8::Local<v8::Value> ToV8Value() const;
+ 
+   // Replace the current |m_pValue| with a v8::Number if possible
+-  // to make one from the current |m_pValue|, updating |m_eType|
+-  // as appropriate to indicate the result.
++  // to make one from the current |m_pValue|.
+   void MaybeCoerceToNumber();
+ 
+   void operator=(int iValue);
+@@ -75,7 +72,6 @@
+   void operator=(double val);
+   void operator=(float val);
+   void operator=(CJS_Object* val);
+-  void operator=(CJS_Document* val);
+   void operator=(v8::Local<v8::Object> val);
+   void operator=(CJS_Array& val);
+   void operator=(CJS_Date& val);
+@@ -91,7 +87,6 @@
+   CJS_Runtime* GetJSRuntime() const { return m_pJSRuntime; }
+ 
+  protected:
+-  Type m_eType;
+   v8::Local<v8::Value> m_pValue;
+   CJS_Runtime* m_pJSRuntime;
+ };
+diff -Naur a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/fxjs_v8.cpp b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/fxjs_v8.cpp
+--- a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/fxjs_v8.cpp	2017-01-03 09:28:53.000000000 +0000
++++ b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/fxjs_v8.cpp	2017-05-15 21:26:26.747016421 +0100
+@@ -10,15 +10,6 @@
+ 
+ #include "core/fxcrt/include/fx_basic.h"
+ 
+-const wchar_t kFXJSValueNameString[] = L"string";
+-const wchar_t kFXJSValueNameNumber[] = L"number";
+-const wchar_t kFXJSValueNameBoolean[] = L"boolean";
+-const wchar_t kFXJSValueNameDate[] = L"date";
+-const wchar_t kFXJSValueNameObject[] = L"object";
+-const wchar_t kFXJSValueNameFxobj[] = L"fxobj";
+-const wchar_t kFXJSValueNameNull[] = L"null";
+-const wchar_t kFXJSValueNameUndefined[] = L"undefined";
+-
+ // Keep this consistent with the values defined in gin/public/context_holder.h
+ // (without actually requiring a dependency on gin itself for the standalone
+ // embedders of PDFIum). The value we want to use is:
+@@ -540,26 +531,6 @@
+                                .ToLocalChecked());
+ }
+ 
+-const wchar_t* FXJS_GetTypeof(v8::Local<v8::Value> pObj) {
+-  if (pObj.IsEmpty())
+-    return nullptr;
+-  if (pObj->IsString())
+-    return kFXJSValueNameString;
+-  if (pObj->IsNumber())
+-    return kFXJSValueNameNumber;
+-  if (pObj->IsBoolean())
+-    return kFXJSValueNameBoolean;
+-  if (pObj->IsDate())
+-    return kFXJSValueNameDate;
+-  if (pObj->IsObject())
+-    return kFXJSValueNameObject;
+-  if (pObj->IsNull())
+-    return kFXJSValueNameNull;
+-  if (pObj->IsUndefined())
+-    return kFXJSValueNameUndefined;
+-  return nullptr;
+-}
+-
+ void FXJS_SetPrivate(v8::Isolate* pIsolate,
+                      v8::Local<v8::Object> pObj,
+                      void* p) {
+diff -Naur a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/include/fxjs_v8.h b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/include/fxjs_v8.h
+--- a/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/include/fxjs_v8.h	2017-01-03 09:28:53.000000000 +0000
++++ b/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/include/fxjs_v8.h	2017-05-15 21:26:26.747016421 +0100
+@@ -118,15 +118,6 @@
+   FXJS_PerIsolateData();
+ };
+ 
+-extern const wchar_t kFXJSValueNameString[];
+-extern const wchar_t kFXJSValueNameNumber[];
+-extern const wchar_t kFXJSValueNameBoolean[];
+-extern const wchar_t kFXJSValueNameDate[];
+-extern const wchar_t kFXJSValueNameObject[];
+-extern const wchar_t kFXJSValueNameFxobj[];
+-extern const wchar_t kFXJSValueNameNull[];
+-extern const wchar_t kFXJSValueNameUndefined[];
+-
+ class FXJS_ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
+   void* Allocate(size_t length) override;
+   void* AllocateUninitialized(size_t length) override;
+@@ -209,7 +200,6 @@
+                                            bool bStatic = false);
+ v8::Local<v8::Object> FXJS_GetThisObj(v8::Isolate* pIsolate);
+ int FXJS_GetObjDefnID(v8::Local<v8::Object> pObj);
+-const wchar_t* FXJS_GetTypeof(v8::Local<v8::Value> pObj);
+ 
+ void FXJS_SetPrivate(v8::Isolate* pIsolate,
+                      v8::Local<v8::Object> pObj,
+diff -Naur a/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h b/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h
+--- a/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h	2017-01-03 09:28:53.000000000 +0000
++++ b/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h	2017-05-15 21:26:50.936833009 +0100
+@@ -542,6 +542,8 @@
+     return *this;
+ }
+ 
++inline void swapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b);
++
+ template<typename T, typename U, typename V, typename W>
+ inline void LinkedHashSet<T, U, V, W>::swap(LinkedHashSet& other)
+ {
+diff -Naur a/src/3rdparty/chromium/v8/src/objects-body-descriptors.h b/src/3rdparty/chromium/v8/src/objects-body-descriptors.h
+--- a/src/3rdparty/chromium/v8/src/objects-body-descriptors.h	2017-01-03 09:28:53.000000000 +0000
++++ b/src/3rdparty/chromium/v8/src/objects-body-descriptors.h	2017-05-15 21:26:39.177922172 +0100
+@@ -99,7 +99,7 @@
+ 
+   template <typename StaticVisitor>
+   static inline void IterateBody(HeapObject* obj, int object_size) {
+-    IterateBody(obj);
++    IterateBody<StaticVisitor>(obj);
+   }
+ };
+ 
+diff -Naur a/src/3rdparty/chromium/v8/src/objects.h b/src/3rdparty/chromium/v8/src/objects.h
+--- a/src/3rdparty/chromium/v8/src/objects.h	2017-01-03 09:28:53.000000000 +0000
++++ b/src/3rdparty/chromium/v8/src/objects.h	2017-05-15 21:26:39.178922165 +0100
+@@ -3193,22 +3193,10 @@
+  public:
+   typedef Shape ShapeT;
+ 
+-  // Wrapper methods
+-  inline uint32_t Hash(Key key) {
+-    if (Shape::UsesSeed) {
+-      return Shape::SeededHash(key, GetHeap()->HashSeed());
+-    } else {
+-      return Shape::Hash(key);
+-    }
+-  }
+-
+-  inline uint32_t HashForObject(Key key, Object* object) {
+-    if (Shape::UsesSeed) {
+-      return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
+-    } else {
+-      return Shape::HashForObject(key, object);
+-    }
+-  }
++  // Wrapper methods.  Defined in src/objects-inl.h
++  // to break a cycle with src/heap/heap.h.
++  inline uint32_t Hash(Key key);
++  inline uint32_t HashForObject(Key key, Object* object);
+ 
+   // Returns a new HashTable object.
+   MUST_USE_RESULT static Handle<Derived> New(
+diff -Naur a/src/3rdparty/chromium/v8/src/objects-inl.h b/src/3rdparty/chromium/v8/src/objects-inl.h
+--- a/src/3rdparty/chromium/v8/src/objects-inl.h	2017-01-03 09:28:53.000000000 +0000
++++ b/src/3rdparty/chromium/v8/src/objects-inl.h	2017-05-15 21:26:39.178922165 +0100
+@@ -38,6 +38,25 @@
+ namespace v8 {
+ namespace internal {
+ 
++template <typename Derived, typename Shape, typename Key>
++uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
++  if (Shape::UsesSeed) {
++    return Shape::SeededHash(key, GetHeap()->HashSeed());
++  } else {
++    return Shape::Hash(key);
++  }
++}
++
++template <typename Derived, typename Shape, typename Key>
++uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
++                                                       Object* object) {
++  if (Shape::UsesSeed) {
++    return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
++  } else {
++    return Shape::HashForObject(key, object);
++  }
++}
++
+ PropertyDetails::PropertyDetails(Smi* smi) {
+   value_ = smi->value();
+ }


More information about the patches mailing list