62 Commits

Author SHA1 Message Date
Frederich Munch
5c66b41851 Fix EscapeSequence::encode returning a StringRef pointing to stack memory. 2017-02-17 15:14:06 +01:00
Frederich Munch
49a1627272 Make sure that extraneous output cannot interrupt Value::print’s string on tty. 2017-02-02 10:14:15 +01:00
Frederich Munch
13aad4bedd Cast function pointers legally. Add Utils/Casting.h 2017-01-25 16:59:13 +01:00
Frederich Munch
08f8c4fa80 Move to UTF-8 string conversion into separate module. Support UTF-8 output on Windows. 2017-01-18 15:59:12 +01:00
Frederich Munch
7eea9235da Have Value::dump write unicode and strings with embedded data properly. 2017-01-18 15:59:12 +01:00
Frederich Munch
075f4ffa83 Add cling output streams to cling/Utils/Output.h 2016-12-19 13:59:11 +01:00
Roman Zulak
87415d29a9 Don't allocate a new string just for output.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-11-21 12:44:35 +01:00
Frederich Munch
a5c1828daf Value::GetNumberOfElements should use size_t and not unsigned long.
This was triggering an assert on Windows.
2016-09-16 17:59:55 +02:00
Frederich Munch
3fc04047aa Remove useless heap allocation in Value::dump. 2016-09-02 12:59:54 +02:00
Axel Naumann
25bbe0c617 Cache Dtor wrappers (used by ~Value); reduce calls to dlsym (ROOT-7840).
This fixes a PyROOT performance regression between 6.02 and 6.04, seen by ATLAS.

(cherry picked from commit ba4b0df02a91be4102e62fc76038711d188f07f3)

Conflicts:
	interpreter/cling/lib/Interpreter/Value.cpp
2015-12-15 20:24:16 +01:00
Axel Naumann
be55c83f9b Inline Value move ctor to enable the compiler to skip it. 2015-10-20 01:50:13 +02:00
Boris Perovic
800c644352 Removed "VALID" after address output, fixes roottest. Various fixes based on comments after second round. 2015-08-18 18:08:20 +02:00
Boris Perovic
a9825d50dc Removed unused function hasViableCandidateToCall (overload resolution and general fallback deals with this now). Moved isAddressValid function from Value.cpp to ValuePrinter.cpp and implemented the check for void*. 2015-08-18 18:08:18 +02:00
Boris Perovic
62c71df1fa Minor fix: print type + " " + value, rather than type" " + value. 2015-08-17 18:45:03 +02:00
Boris Perovic
c44940b223 New printValue() integration (printing unified through overloading of printValue() function and template resolution). Modified tests to conform to the new prints. 2015-08-17 18:45:03 +02:00
Axel Naumann
219d68f641 More performant version of getting the underlying type. 2015-04-09 17:18:30 +02:00
Axel Naumann
397f6fb9e9 Fix warning; make determineStorageType() static. 2015-04-07 09:39:25 +02:00
Axel Naumann
ca9ac1961f Accelerate costly Value functions by storing results. 2015-04-06 21:30:19 +02:00
Axel Naumann
99a5488e9f Check that the pointer is valid before printing (ROOT-7095). 2015-02-23 00:03:26 +01:00
Axel Naumann
46673943f8 MCJIT knows where to find things, do not rely on the module (which one?) 2015-02-11 10:57:40 +01:00
Axel Naumann
5bf6da8e73 Use Module::getNamedValue() to check for existing symbols (ROOT-6909). 2014-12-15 15:40:05 +01:00
Axel Naumann
232f3616d5 Only call GetFullyQualifiedName() if wrapper does not exist (ROOT-6909). 2014-12-05 18:35:14 +01:00
Axel Naumann
16b653da0e Use the fully qualified name. 2014-09-26 12:45:09 +02:00
Vassil Vassilev
49d8e02b27 Pass in the printing policy when printing types. 2014-09-15 14:12:07 +02:00
Vassil Vassilev
22f891e9be llvm::OwningPtr to std::unique_ptr. 2014-08-14 14:56:38 +02:00
Vassil Vassilev
a79ba8fd7c Add include needed by CXXNullPtrLiteralExpr. 2014-08-14 14:56:34 +02:00
Vassil Vassilev
5d217e83ea OverloadCandidateSet's ctor takes one more argument. 2014-08-14 14:56:34 +02:00
Vassil Vassilev
ee9fc709ab We don't need the ValuePrinter.h 2014-05-21 18:11:58 +02:00
Vassil Vassilev
d03ba0fb9f Reduce cling's runtime overhead. 2014-05-21 18:11:58 +02:00
Vassil Vassilev
b563268f19 Typo. 2014-05-21 18:11:58 +02:00
Vassil Vassilev
b855d1111c Use proper indents. 2014-05-21 18:11:58 +02:00
Vassil Vassilev
51b55438a1 Before proceeding to call the special user-specific function check for the right overload.
This implementation is a bit cumbersome, but the key advantage is that we do not
create AST nodes on the heap. We create some nodes which will help the overload
candidate selector to do the selection. After it returned true/false (there is/isn't
proper function to call) we free all the used memory and proceed in calling the
user defined function.
2014-05-20 13:54:58 +02:00
Vassil Vassilev
7b9f839ef5 Get the ptr type of a non reference type, in order to meet the special printValue/Type function convention. 2014-05-20 13:54:57 +02:00
Vassil Vassilev
a6eedd674b Extract out common implementation. 2014-05-20 10:40:58 +02:00
Vassil Vassilev
58b76265fa Forget about ValuePrinterInfo. 2014-05-18 20:45:56 +02:00
Vassil Vassilev
e1367a1f17 Add a simple overload candidate selector. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
46636a18d3 No need to pass the interpreter. We have it. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
28de2c1cc2 No need to pass in the ASTContext, we have it. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
47a0d9e5e8 No need of complex indirections and 'fancy' function signatures. Simplify. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
3dfc56637b Get rid of redundant class. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
214376a899 Implement cling::Value dump as a 'static' operation.
We need to look for a user overload of cling::printValue and printType and give
the control to it. If not specified, fallback into the default implementation.
2014-05-18 18:08:58 +02:00
Vassil Vassilev
e587158b03 Add the Interpreter* to the cling::Value. We can afford it, because its actual size is 24 and it anyway gets aligned to 32 (except on a few old washing machines). 2014-05-18 18:08:58 +02:00
Vassil Vassilev
cb29e6e529 Add printing utility functions to the cling::Value. 2014-05-18 18:08:58 +02:00
Axel Naumann
1b9910ea28 Fix destruction of array-of-structs.
Iterate over the elements, calling the dtor on each.
Requires two more fields in the AllocatedValue to track the array size and
element offset.
Note that this is only implemented for constant size arrays; all others are expected to not be returned (and thus not stored) by value.
2014-04-11 09:00:01 +02:00
Axel Naumann
26d409e472 Work around pointer/function cast warning. 2014-04-02 15:29:58 +02:00
Axel Naumann
fd71458a5f Implement cheap move ctor/op=. Member-init order. 2014-04-01 18:31:58 +02:00
Axel Naumann
d00d9e8d54 Simplify; adapt to new Value. 2014-04-01 18:31:58 +02:00
Axel Naumann
93970e8c35 Replace StoredValueRef by Value. 2014-04-01 18:31:58 +02:00
Axel Naumann
de2b4ed039 A "usually" allocation-free cling::Value (ROOT-6075). 2014-04-01 18:31:57 +02:00
Vassil Vassilev
2309fc097e Rename ExecutionContext -> IncrementalExecutor 2014-02-19 12:55:00 +01:00