Michael Davidsaver
f0cfe1c85a
PVField::copy() avoid duplication with copyUnchecked()
2018-07-31 16:55:15 -07:00
Michael Davidsaver
c8b615b3ee
Field initialize m_hash
...
valgrind complain (rightly) about use of uninitialized
if Structure ctor throws (eg. duplicate field).
~Field will then try to use m_hash before it has been
initialized. This don't hurt and the subsequent equality
tests prevent any bad behavior.
2018-07-30 14:50:19 -07:00
Michael Davidsaver
c67fdafb43
add pvRequest -> bitmask processing
2018-07-14 15:10:46 -07:00
Michael Davidsaver
f66d277918
msvc 9 compat
2018-07-12 19:05:12 -07:00
Michael Davidsaver
4ef7db20f8
sharePtr.h: adjust apply/llvm compatibility
2018-07-12 15:38:49 -07:00
Michael Davidsaver
e1216dfa76
move PVValueArray dtor out of line
...
This class has out of line members, and explicit
instanciations. Move the dtor out of line as
well to maybe avoid emitting duplicate
typeinfo.
2018-07-12 15:38:49 -07:00
Michael Davidsaver
340fa8a7cb
Thread accept non-copyable std::function
2018-07-11 16:30:05 -07:00
Michael Davidsaver
a029455466
Thread reftrack
2018-07-11 16:30:04 -07:00
Michael Davidsaver
27f78c430b
move Thread out of line
2018-07-11 16:29:50 -07:00
Michael Davidsaver
0406a2f614
Field de-duplication
...
add a global cache of Field instances to
allow O(0) comparison of types.
2018-07-06 12:01:14 -07:00
Michael Davidsaver
a1c0e432ee
fix Timer
...
use after free
2018-06-19 16:32:39 -07:00
Michael Davidsaver
57e57d9e43
de-virtualize PVValueArray<T> methods append(), remove(), and compress()
...
These were never members of a common base class,
nor overridden by a sub-class.
2018-06-07 09:53:38 -07:00
Michael Davidsaver
e4e4188eaf
some more FINAL
2018-06-07 09:53:38 -07:00
Michael Davidsaver
f1553cc90e
Move NOMINMAX to configure/CONFIG_SITE
...
The macro must be defined before MS system headers are
included.
This rev. remove #define NOMINMAX from public headers,
but no public headers use min()/max() and this was
never the correct way to use this macro as by convention
library headers are included after system headers,
which is too late to have an effect.
2018-05-28 11:24:49 -07:00
Michael Davidsaver
997e68c99a
remove usage of min()/max() from public headers
...
Avoids need for #define NOMINMAX w/ MSVC
2018-05-28 10:14:03 -07:00
Michael Davidsaver
25663d9a7b
additional EPICS_NOT_COPYABLE
...
attempt to pacify, or at least clarify, msvc
link error.
2018-05-21 21:02:32 -07:00
Michael Davidsaver
1e55266396
pvUnitTest.h avoid unintended copies
...
template argument matching doesn't always preserve
rvalue references, so force use of const ref.
2018-05-21 11:21:01 -07:00
Michael Davidsaver
810ae15991
printer.cpp avoid alloc of spaces
...
No need to allocate a std::string
just to repeat spaces.
2018-05-21 11:21:01 -07:00
Michael Davidsaver
271fec7f5e
printer.cpp: clean whitespace
2018-05-21 11:21:01 -07:00
Michael Davidsaver
c43486791e
prevent Field/PVField from being copied
...
I don't think this was ever intended to be possible,
but it was...
2018-05-21 11:19:42 -07:00
Michael Davidsaver
7eaa613d4d
try to fix dllimport error
2018-04-17 21:13:22 -07:00
Michael Davidsaver
19db72031c
shared_vector add missing void swap
...
swap() of void and const void misses vtype
2018-04-13 12:40:22 -07:00
Michael Davidsaver
671f9cca4b
anyscalar.h: move out of line
...
No reason to believe that inline was helping.
2018-04-08 15:53:21 -07:00
Michael Davidsaver
9ecdb80534
anyscalar.h: remove unnecesary vcast
...
what was I thinking...
2018-04-08 15:53:21 -07:00
Michael Davidsaver
e973422ee1
anyscalar.h: add ctor from type code and void*
...
also helper bufferUnsafe() to get storage pointer
or c_str().
2018-04-08 15:53:21 -07:00
Michael Davidsaver
8093c25b72
typeCast.h: allow cast from C string to numeric w/o copy
...
also re-enable compile test of string to int64 which
was disabled for some reason...
2018-04-08 15:53:21 -07:00
Michael Davidsaver
a7c9c620dd
Timer avoid deadlock in timerStopped()
...
No code actually uses this hook, but lets make
sure nothing bad would happen.
2018-04-08 15:53:21 -07:00
Michael Davidsaver
1e1d94ed73
rework Timer
...
I'm not sure how I broke it, but I know I don't have the patience
to fix it. So replacing intrusive list and custom sorting with
std::list and std::list::merge().
2018-04-04 21:03:11 -07:00
Michael Davidsaver
7b8ef390ce
add Timer::close()
...
An aid to orderly shutdown
2018-04-02 15:54:48 -07:00
Michael Davidsaver
87ade13234
Timer cleanup and hide run()
2018-04-02 15:54:48 -07:00
Michael Davidsaver
32abde7f19
redo Timer to avoid data race
...
run() was accessing this->head w/o locking
2018-04-02 10:54:49 -07:00
Michael Davidsaver
b4cd026fe5
byteBuffer cleanup
2018-03-23 10:05:31 -07:00
Michael Davidsaver
a51b308cc8
ByteBuffer avoid PPC alignment fault
2018-03-19 15:26:40 -07:00
Michael Davidsaver
1c09b42951
ByteBuffer change order of tests for optimized byte swap
...
Check __clang__ before __GNUC__ as clang
also identifies itself as gcc for compatibility.
2018-03-19 15:26:35 -07:00
Michael Davidsaver
e42bb46563
ByteBuffer collapse some trivial indirection
2018-03-19 15:26:35 -07:00
Michael Davidsaver
172046e78f
Add AnyScalar::clear()
2018-02-21 11:17:49 -08:00
Michael Davidsaver
7e8c49f0a0
don't use shared_ptr::get() for null test
...
unnecesarily verbose
2018-02-21 11:17:49 -08:00
Michael Davidsaver
f2ad6292f5
cleanup
2018-02-06 13:12:06 -08:00
Michael Davidsaver
337e13b72e
pvIntrospect.h mark OVERRIDE/FINAL
2018-02-06 10:12:38 -08:00
Michael Davidsaver
2ab2fc62dc
move FINAL/OVERRIDE defs to pvIntrospect.h
2018-02-06 10:12:38 -08:00
Michael Davidsaver
786575c3de
a little bit of cleanup and minor opt
2018-02-06 10:02:08 -08:00
Michael Davidsaver
4cca194000
drop *HashFunction
...
not really implemented
2018-02-06 10:02:08 -08:00
Michael Davidsaver
a239b95ca1
remove previously deprecated executor.h, queue.h and timerFunction.h
2018-01-05 11:14:59 -08:00
Michael Davidsaver
09574c0e82
sharedVector more c++11
...
support std::move() and construct
from initializer list.
2018-01-05 11:14:59 -08:00
Michael Davidsaver
0b6b01ef83
shared_vector limit MSVC workaround
...
limit 207efca15c
to MSVC <= 2010.
2018-01-05 11:14:59 -08:00
Andrew Johnson
34145e459b
Clean up compiler warnings.
2018-01-04 17:59:09 -06:00
Michael Davidsaver
207efca15c
workaround for msvc pickyness
...
The MSVC STL implementation asserts that
pointer/itertors are not null, even
when they would not be dereferenced
(eg. empty input range).
2018-01-04 11:52:19 -08:00
Michael Davidsaver
2046678caa
drop emptyStringtring
2018-01-04 11:52:19 -08:00
Michael Davidsaver
43ee4b9cb6
thread safe getFieldCreate() and getPVDataCreate()
...
Fully thread safe and ctor order safe on all targets
(not just c++11). Never destroyed to avoid global
dtor order issues.
2017-12-28 11:52:47 -06:00
Michael Davidsaver
207c24a4fd
deprecate LOCAL_STATIC_LOCK
...
This construct is fairly useless.
Doesn't prevent ctor ordering problems.
2017-12-28 11:52:47 -06:00