-
fpizlo@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=103000 Reviewed by Sam Weinig. Source/JavaScriptCore: Change all users of WTF::dataFile() to expect a PrintStream& rather than a FILE*. * bytecode/Operands.h: (JSC::OperandValueTraits::dump): (JSC::dumpOperands): (JSC): * dfg/DFGAbstractState.cpp: (JSC::DFG::AbstractState::dump): * dfg/DFGAbstractState.h: (AbstractState): * dfg/DFGAbstractValue.h: (JSC::DFG::AbstractValue::dump): * dfg/DFGCommon.h: (JSC::DFG::NodeIndexTraits::dump): * dfg/DFGStructureAbstractValue.h: (JSC::DFG::StructureAbstractValue::dump): * dfg/DFGVariableEvent.cpp: (JSC::DFG::VariableEvent::dump): (JSC::DFG::VariableEvent::dumpFillInfo): (JSC::DFG::VariableEvent::dumpSpillInfo): * dfg/DFGVariableEvent.h: (VariableEvent): * disassembler/Disassembler.h: (JSC): (JSC::tryToDisassemble): * disassembler/UDis86Disassembler.cpp: (JSC::tryToDisassemble): Source/WTF: We have a number of places where we pass around a FILE* as a target to which to print some logging information. But the purpose of passing FILE* instead of always assuming that we should dump to stderr is that it may be sometimes useful to send the logging information elsewhere. Unfortunately, FILE* isn't quite powerful enough: it's combersome to use it to send logging to a string, for example. We could get around this by using <iostream> and <sstream>, but so far this aspect of C++ has not been part of the WebKit coding conventions. Personally I find <iostream> awkward due to its abuse of operator overloading. So this patch introduces the PrintStream abstract class, which offers printf-like functionality while completely abstracting the destination and mechanism of the printing output. It would be trivial to implement a StringPrintStream, for example. This will feed into work on https://bugs.webkit.org/show_bug.cgi?id=102999. This also sets us up for creating templatized print() and println() methods that will allow us to say things like out.print("count = ", count, "\n"), but that is the topic of https://bugs.webkit.org/show_bug.cgi?id=103009. This patch also changes dataLog() to use FilePrintStream internally, and WTF::dataFile() now returns a FilePrintStream&. Any previous users of WTF::dataFile() have been changed to expect a PrintStream&. * GNUmakefile.list.am: * WTF.pro: * WTF.vcproj/WTF.vcproj: * WTF.xcodeproj/project.pbxproj: * wtf/CMakeLists.txt: * wtf/DataLog.cpp: (WTF): (WTF::initializeLogFileOnce): (WTF::initializeLogFile): (WTF::dataFile): (WTF::dataLogV): (WTF::dataLogString): * wtf/DataLog.h: (WTF): * wtf/FilePrintStream.cpp: Added. (WTF): (WTF::FilePrintStream::FilePrintStream): (WTF::FilePrintStream::~FilePrintStream): (WTF::FilePrintStream::vprintf): (WTF::FilePrintStream::flush): * wtf/FilePrintStream.h: Added. (WTF): (FilePrintStream): (WTF::FilePrintStream::file): * wtf/PrintStream.cpp: Added. (WTF): (WTF::PrintStream::PrintStream): (WTF::PrintStream::~PrintStream): (WTF::PrintStream::printf): (WTF::PrintStream::print): (WTF::PrintStream::println): (WTF::PrintStream::flush): (WTF::print): * wtf/PrintStream.h: Added. (WTF): (PrintStream): (WTF::print): (WTF::println): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@135640 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2ee99366