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