[JSC] Remove "using namespace std;" from JSC, bmalloc, WTF
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 7 May 2018 02:46:40 +0000 (02:46 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 7 May 2018 02:46:40 +0000 (02:46 +0000)
https://bugs.webkit.org/show_bug.cgi?id=185362

Reviewed by Sam Weinig.

Source/bmalloc:

* bmalloc/Allocator.cpp:
* bmalloc/Deallocator.cpp:

Source/JavaScriptCore:

"namespace std" may include many names. It can conflict with names defined by our code,
and the other platform provided headers. For example, std::byte conflicts with Windows'
::byte.
This patch removes "using namespace std;" from JSC and bmalloc.

* API/JSClassRef.cpp:
(OpaqueJSClass::create):
* bytecode/Opcode.cpp:
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::newRegister):
* heap/Heap.cpp:
(JSC::Heap::updateAllocationLimits):
* interpreter/Interpreter.cpp:
* jit/JIT.cpp:
* parser/Parser.cpp:
* runtime/JSArray.cpp:
* runtime/JSLexicalEnvironment.cpp:
* runtime/JSModuleEnvironment.cpp:
* runtime/Structure.cpp:
* shell/DLLLauncherMain.cpp:
(getStringValue):
(applePathFromRegistry):
(appleApplicationSupportDirectory):
(copyEnvironmentVariable):
(prependPath):
(fatalError):
(directoryExists):
(modifyPath):
(getLastErrorString):
(wWinMain):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231403 268f45cc-cd09-0410-ab3c-d52691b4dbfc

16 files changed:
Source/JavaScriptCore/API/JSClassRef.cpp
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/bytecode/Opcode.cpp
Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
Source/JavaScriptCore/heap/Heap.cpp
Source/JavaScriptCore/interpreter/Interpreter.cpp
Source/JavaScriptCore/jit/JIT.cpp
Source/JavaScriptCore/parser/Parser.cpp
Source/JavaScriptCore/runtime/JSArray.cpp
Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp
Source/JavaScriptCore/runtime/JSModuleEnvironment.cpp
Source/JavaScriptCore/runtime/Structure.cpp
Source/JavaScriptCore/shell/DLLLauncherMain.cpp
Source/bmalloc/ChangeLog
Source/bmalloc/bmalloc/Allocator.cpp
Source/bmalloc/bmalloc/Deallocator.cpp

index eb525f1..ef0066d 100644 (file)
@@ -37,7 +37,6 @@
 #include <wtf/text/StringHash.h>
 #include <wtf/unicode/UTF8.h>
 
-using namespace std;
 using namespace JSC;
 using namespace WTF::Unicode;
 
@@ -119,7 +118,7 @@ Ref<OpaqueJSClass> OpaqueJSClass::create(const JSClassDefinition* clientDefiniti
 
     JSClassDefinition protoDefinition = kJSClassDefinitionEmpty;
     protoDefinition.finalize = 0;
-    swap(definition.staticFunctions, protoDefinition.staticFunctions); // Move static functions to the prototype.
+    std::swap(definition.staticFunctions, protoDefinition.staticFunctions); // Move static functions to the prototype.
     
     // We are supposed to use JSClassRetain/Release but since we know that we currently have
     // the only reference to this class object we cheat and use a RefPtr instead.
index b3b765d..fb2176f 100644 (file)
@@ -1,3 +1,41 @@
+2018-05-06  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        [JSC] Remove "using namespace std;" from JSC, bmalloc, WTF
+        https://bugs.webkit.org/show_bug.cgi?id=185362
+
+        Reviewed by Sam Weinig.
+
+        "namespace std" may include many names. It can conflict with names defined by our code,
+        and the other platform provided headers. For example, std::byte conflicts with Windows'
+        ::byte.
+        This patch removes "using namespace std;" from JSC and bmalloc.
+
+        * API/JSClassRef.cpp:
+        (OpaqueJSClass::create):
+        * bytecode/Opcode.cpp:
+        * bytecompiler/BytecodeGenerator.cpp:
+        (JSC::BytecodeGenerator::newRegister):
+        * heap/Heap.cpp:
+        (JSC::Heap::updateAllocationLimits):
+        * interpreter/Interpreter.cpp:
+        * jit/JIT.cpp:
+        * parser/Parser.cpp:
+        * runtime/JSArray.cpp:
+        * runtime/JSLexicalEnvironment.cpp:
+        * runtime/JSModuleEnvironment.cpp:
+        * runtime/Structure.cpp:
+        * shell/DLLLauncherMain.cpp:
+        (getStringValue):
+        (applePathFromRegistry):
+        (appleApplicationSupportDirectory):
+        (copyEnvironmentVariable):
+        (prependPath):
+        (fatalError):
+        (directoryExists):
+        (modifyPath):
+        (getLastErrorString):
+        (wWinMain):
+
 2018-05-05  Filip Pizlo  <fpizlo@apple.com>
 
         DFG CFA phase should only do clobber asserts in debug
index 0d16dfc..3a849c4 100644 (file)
@@ -37,8 +37,6 @@
 #include <wtf/DataLog.h>
 #endif
 
-using namespace std;
-
 namespace JSC {
 
 const char* const opcodeNames[] = {
index 6839521..e7795db 100644 (file)
@@ -64,8 +64,6 @@
 #include <wtf/StdLibExtras.h>
 #include <wtf/text/WTFString.h>
 
-using namespace std;
-
 namespace JSC {
 
 template<typename T>
@@ -1196,7 +1194,7 @@ UniquedStringImpl* BytecodeGenerator::visibleNameForParameter(DestructuringPatte
 RegisterID* BytecodeGenerator::newRegister()
 {
     m_calleeLocals.append(virtualRegisterForLocal(m_calleeLocals.size()));
-    int numCalleeLocals = max<int>(m_codeBlock->m_numCalleeLocals, m_calleeLocals.size());
+    int numCalleeLocals = std::max<int>(m_codeBlock->m_numCalleeLocals, m_calleeLocals.size());
     numCalleeLocals = WTF::roundUpToMultipleOf(stackAlignmentRegisters(), numCalleeLocals);
     m_codeBlock->m_numCalleeLocals = numCalleeLocals;
     return &m_calleeLocals.last();
index 2f8ce66..3bc9e5b 100644 (file)
@@ -102,8 +102,6 @@ extern "C" void objc_autoreleasePoolPop(void *context);
 #include "JSCGLibWrapperObject.h"
 #endif
 
-using namespace std;
-
 namespace JSC {
 
 namespace {
@@ -120,7 +118,7 @@ double maxPauseMS(double thisPauseMS)
 size_t minHeapSize(HeapType heapType, size_t ramSize)
 {
     if (heapType == LargeHeap) {
-        double result = min(
+        double result = std::min(
             static_cast<double>(Options::largeHeapSize()),
             ramSize * Options::smallHeapRAMFraction());
         return static_cast<size_t>(result);
@@ -2231,7 +2229,7 @@ void Heap::updateAllocationLimits()
         // To avoid pathological GC churn in very small and very large heaps, we set
         // the new allocation limit based on the current size of the heap, with a
         // fixed minimum.
-        m_maxHeapSize = max(minHeapSize(m_heapType, m_ramSize), proportionalHeapSize(currentHeapSize, m_ramSize));
+        m_maxHeapSize = std::max(minHeapSize(m_heapType, m_ramSize), proportionalHeapSize(currentHeapSize, m_ramSize));
         if (verbose)
             dataLog("Full: maxHeapSize = ", m_maxHeapSize, "\n");
         m_maxEdenSize = m_maxHeapSize - currentHeapSize;
index 4f72709..5449c61 100644 (file)
@@ -90,8 +90,6 @@
 #include "JIT.h"
 #endif
 
-using namespace std;
-
 namespace JSC {
 
 JSValue eval(CallFrame* callFrame)
index 4c34e53..e20708a 100644 (file)
@@ -55,8 +55,6 @@
 #include <wtf/GraphNodeWorklist.h>
 #include <wtf/SimpleStats.h>
 
-using namespace std;
-
 namespace JSC {
 namespace JITInternal {
 static constexpr const bool verbose = false;
index 89053a7..6e6fd49 100644 (file)
@@ -86,8 +86,6 @@
 
 #define semanticFailureDueToKeyword(...) semanticFailureDueToKeywordCheckingToken(m_token, __VA_ARGS__);
 
-using namespace std;
-
 namespace JSC {
 
 ALWAYS_INLINE static SourceParseMode getAsynFunctionBodyParseMode(SourceParseMode parseMode)
index 78bef94..6fd86e7 100644 (file)
@@ -35,9 +35,6 @@
 #include "TypeError.h"
 #include <wtf/Assertions.h>
 
-using namespace std;
-using namespace WTF;
-
 namespace JSC {
 
 const char* const LengthExceededTheMaximumArrayLengthError = "Length exceeded the maximum array length";
index d801d5a..9943d0e 100644 (file)
@@ -34,8 +34,6 @@
 #include "JSFunction.h"
 #include "JSCInlines.h"
 
-using namespace std;
-
 namespace JSC {
 
 const ClassInfo JSLexicalEnvironment::s_info = { "JSLexicalEnvironment", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSLexicalEnvironment) };
index a9eb84a..d9b9e57 100644 (file)
@@ -34,8 +34,6 @@
 #include "JSCInlines.h"
 #include "JSFunction.h"
 
-using namespace std;
-
 namespace JSC {
 
 const ClassInfo JSModuleEnvironment::s_info = { "JSModuleEnvironment", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSModuleEnvironment) };
index 720aff7..a66ce56 100644 (file)
@@ -46,9 +46,6 @@
 
 #define DUMP_STRUCTURE_ID_STATISTICS 0
 
-using namespace std;
-using namespace WTF;
-
 namespace JSC {
 
 #if DUMP_STRUCTURE_ID_STATISTICS
index 1770e25..33633c3 100644 (file)
@@ -35,8 +35,6 @@
 #include <vector>
 #include <windows.h>
 
-using namespace std;
-
 #if defined _M_IX86
 #define PROCESSORARCHITECTURE "x86"
 #elif defined _M_IA64
@@ -58,73 +56,73 @@ static void enableTerminationOnHeapCorruption()
     HeapSetInformation(0, heapEnableTerminationOnCorruption, 0, 0);
 }
 
-static wstring getStringValue(HKEY key, const wstring& valueName)
+static std::wstring getStringValue(HKEY key, const std::wstring& valueName)
 {
     DWORD type = 0;
     DWORD bufferSize = 0;
     if (::RegQueryValueExW(key, valueName.c_str(), 0, &type, 0, &bufferSize) != ERROR_SUCCESS || type != REG_SZ)
-        return wstring();
+        return std::wstring();
 
-    vector<wchar_t> buffer(bufferSize / sizeof(wchar_t));
+    std::vector<wchar_t> buffer(bufferSize / sizeof(wchar_t));
     if (::RegQueryValueExW(key, valueName.c_str(), 0, &type, reinterpret_cast<LPBYTE>(&buffer[0]), &bufferSize) != ERROR_SUCCESS)
-        return wstring();
+        return std::wstring();
 
     return &buffer[0];
 }
 
-static wstring applePathFromRegistry(const wstring& key, const wstring& value)
+static std::wstring applePathFromRegistry(const std::wstring& key, const std::wstring& value)
 {
     HKEY applePathKey = 0;
     if (::RegOpenKeyExW(HKEY_LOCAL_MACHINE, key.c_str(), 0, KEY_READ, &applePathKey) != ERROR_SUCCESS)
-        return wstring();
-    wstring path = getStringValue(applePathKey, value);
+        return std::wstring();
+    std::wstring path = getStringValue(applePathKey, value);
     ::RegCloseKey(applePathKey);
     return path;
 }
 
-static wstring appleApplicationSupportDirectory()
+static std::wstring appleApplicationSupportDirectory()
 {
     return applePathFromRegistry(L"SOFTWARE\\Apple Inc.\\Apple Application Support", L"InstallDir");
 }
 
-static wstring copyEnvironmentVariable(const wstring& variable)
+static std::wstring copyEnvironmentVariable(const std::wstring& variable)
 {
     DWORD length = ::GetEnvironmentVariableW(variable.c_str(), 0, 0);
     if (!length)
-        return wstring();
-    vector<wchar_t> buffer(length);
+        return std::wstring();
+    std::vector<wchar_t> buffer(length);
     if (!GetEnvironmentVariable(variable.c_str(), &buffer[0], buffer.size()) || !buffer[0])
-        return wstring();
+        return std::wstring();
     return &buffer[0];
 }
 
-static bool prependPath(const wstring& directoryToPrepend)
+static bool prependPath(const std::wstring& directoryToPrepend)
 {
-    wstring pathVariable = L"PATH";
-    wstring oldPath = copyEnvironmentVariable(pathVariable);
-    wstring newPath = directoryToPrepend + L';' + oldPath;
+    std::wstring pathVariable = L"PATH";
+    std::wstring oldPath = copyEnvironmentVariable(pathVariable);
+    std::wstring newPath = directoryToPrepend + L';' + oldPath;
     return ::SetEnvironmentVariableW(pathVariable.c_str(), newPath.c_str());
 }
 
-static int fatalError(const wstring& programName, const wstring& message)
+static int fatalError(const std::wstring& programName, const std::wstring& message)
 {
-    wstring caption = programName + L" can't open.";
+    std::wstring caption = programName + L" can't open.";
     ::MessageBoxW(0, message.c_str(), caption.c_str(), MB_ICONERROR);
     return 1;
 }
 
-static bool directoryExists(const wstring& path)
+static bool directoryExists(const std::wstring& path)
 {
     DWORD attrib = ::GetFileAttributes(path.c_str());
 
     return ((attrib != INVALID_FILE_ATTRIBUTES) && (attrib & FILE_ATTRIBUTE_DIRECTORY));
 }
 
-static bool modifyPath(const wstring& programName)
+static bool modifyPath(const std::wstring& programName)
 {
 #ifdef WIN_CAIRO
 
-    wstring pathWinCairo = copyEnvironmentVariable(L"WEBKIT_LIBRARIES");
+    std::wstring pathWinCairo = copyEnvironmentVariable(L"WEBKIT_LIBRARIES");
     if (!directoryExists(pathWinCairo))
         return true;
 #if defined(_M_X64)
@@ -140,7 +138,7 @@ static bool modifyPath(const wstring& programName)
 
 #else
 
-    const wstring& pathPrefix = appleApplicationSupportDirectory();
+    const std::wstring& pathPrefix = appleApplicationSupportDirectory();
 
     if (!directoryExists(pathPrefix)) {
         fatalError(programName, L"Failed to determine path to AAS directory.");
@@ -155,7 +153,7 @@ static bool modifyPath(const wstring& programName)
 #endif
 }
 
-static wstring getLastErrorString(HRESULT hr)
+static std::wstring getLastErrorString(HRESULT hr)
 {
     static const DWORD kFlags = FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS;
     static const size_t bufSize = 4096;
@@ -185,20 +183,20 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpstrCm
 
     ::PathRemoveExtensionW(exePath);
 
-    wstring programName = ::PathFindFileNameW(exePath);
+    std::wstring programName = ::PathFindFileNameW(exePath);
 
     if (!modifyPath(programName))
         return 1;
 
     // Load our corresponding DLL.
-    wstring dllName = programName + L"Lib.dll";
+    std::wstring dllName = programName + L"Lib.dll";
     if (!::PathRemoveFileSpecW(exePath))
         return fatalError(programName, L"::PathRemoveFileSpecW failed: " + getLastErrorString(::GetLastError()));
     if (!::PathAppendW(exePath, dllName.c_str()))
         return fatalError(programName, L"::PathAppendW failed: " + getLastErrorString(::GetLastError()));
     HMODULE module = ::LoadLibraryW(exePath);
     if (!module)
-        return fatalError(programName, L"::LoadLibraryW failed: \npath=" + wstring(exePath) + L"\n" + getLastErrorString(::GetLastError()));
+        return fatalError(programName, L"::LoadLibraryW failed: \npath=" + std::wstring(exePath) + L"\n" + getLastErrorString(::GetLastError()));
 
 #if USE_CONSOLE_ENTRY_POINT
     typedef int (WINAPI*EntryPoint)(int, const char*[]);
index 4b2a3af..87820a7 100644 (file)
@@ -1,3 +1,13 @@
+2018-05-06  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        [JSC] Remove "using namespace std;" from JSC, bmalloc, WTF
+        https://bugs.webkit.org/show_bug.cgi?id=185362
+
+        Reviewed by Sam Weinig.
+
+        * bmalloc/Allocator.cpp:
+        * bmalloc/Deallocator.cpp:
+
 2018-05-03  Filip Pizlo  <fpizlo@apple.com>
 
         Strings should not be allocated in a gigacage
index 770e78a..f2d93b7 100644 (file)
@@ -34,8 +34,6 @@
 #include <algorithm>
 #include <cstdlib>
 
-using namespace std;
-
 namespace bmalloc {
 
 Allocator::Allocator(Heap& heap, Deallocator& deallocator)
index 1b37051..556f327 100644 (file)
@@ -35,8 +35,6 @@
 #include <cstdlib>
 #include <sys/mman.h>
 
-using namespace std;
-
 namespace bmalloc {
 
 Deallocator::Deallocator(Heap& heap)