* github/pr/99:
fix an out-dated comment in the array filter code
add macro dbfl_pfield to db_field_log.h and use it in dbGet
fix in dbGet: decide use of db_field_log based on whether it has copy or not
add macro dbfl_has_copy to db_field_log.h and use it in dbAccess.c
refactor db_field_log and filters to get rid of dbfl_type_rec
make it clearer what the result of wrapArrayIndices will be
The Soft Channel device support requests pass-1 initialization.
It no longer needs to initialize the INP link or allocate the
array buffer itself, these are taken care of elsewhere.
The record code uses PACT to remember that the device must be
initialized again in pass 1.
This fixes github issue #97:
Reading into an aai record from a compress or histogram or subArray record
could cause a segfault if the aai record was initialized before the
linked one.
This refactor simplifies and streamlines the code associated with server
side filters. Apart from immediate benefits (clearer code, less duplication)
it is also hoped that this will make it easier to add write filters.
The data pointer dbfl_ref.field can now either point to a copy owned by a
filter, or it can point to the original data owned by a record. In the
latter case, the dbfl_ref.dtor is NULL.
The dbExtractArray* functions are unified to the single function
dbExtractArray and stripped of conversion functionality. This is redundant
because we always call dbGet after applying filters, which takes care of
conversion. Accordingly, dbChannelMakeArrayCopy is now obsolete and its
single use (in the ts filter) replaced with dbExtractArray. Instead, we add
the helper function dbChannelGetArrayInfo to wrap the common boilerplate
around calls to the get_array_info method, used in both arr.c and ts.c.
* lp-zimoch/dbChannelForDBLinks: (43 commits)
add tests for empty array filter results
Fix linkFilterTest, move Release Notes to the right place
do not handle empty arrays (undefined behavior)
Revert "new error code for empty arrays"
test code beautification
make db_init_event_freelists private
remove unnecessary check
remove needless pointer access
new error code for empty arrays
clean up code structure
Release notes updated
set number of planned link filter tests
removed unnecessary recGblSetSevr call
re-order link filter tests to alternate between success and failure
unused variable removed
Revert "fix crash in PINI: use local db_field_log"
initialize free lists when starting dbChannel
db link filter tests added
bugfix: dbGet should not crash because of empty array requests
fix crash in PINI: use local db_field_log
...
# Conflicts:
# documentation/RELEASE_NOTES.md
* githubbhill/timestamp-before-outlink:
Update RELEASE_NOTES for timestamp-before-outlink
Patch record processing routines to update timestamp before processing outlinks
In some cases the license-identification header was missing,
so I added that as well. Replaced the remaining headers that
specifically identified "Versions 3.13.7 and higher".
Makefiles and the build system were deliberately excluded.
Add documentation for aSub from wiki.
Fix incorrect document structures.
Remove inclusion of menu.dbd files.
Fix links to common doc's, remove some links to nowhere.
Adjust podToHtml.pl and the rule that calls it.
* lp-anj7/expanded-rules:
Generate module version files with new RULES_EXPAND facilities
Extend RULES_EXPAND to add more features
More generator doc updates
Document <library>_API = <stem> for Makefiles
Convert epicsShareAPI to epicsStdCall in modules/ca
Update generator script
Modify rules to allow multiple API.h libraries to be built
Convert modules/ca to use LIBCA_API instead of epicsShare
Try out a representative sample of APIs from multiple libraries
Add build rules to generate and install *API.h header files
Add script to generate *API.h headers
* lp-anj7/typed-dsets:
Bump database version to 3.18.0, use in SHRLIB_VERSION
Adjust example code in devSup.h
Set USE_TYPED_DSET centrally now everything uses it
Update the wording of the Release Notes entry
- Record updates: . histogramRecord . eventRecord . aaiRecord . aaoRecord
- Record updates: . aoRecord . biRecord . boRecord . mbbiRecord . mbbiDirectRecord . mbboRecord . mbboDirectRecord . longinRecord . longoutRecord . stringoutRecord . stringinRecord . waveformRecord . calcoutRecord . subArrayRecord
initial typed-dset changes for ao record
Add Release Notes entry about dsets
Export and use aidset, set USE_TYPED_DSET
Remove duplicated include line
Add HAS_<record>dset macros to allow detection
Export and use int64outdset, set USE_TYPED_DSET
Export and use int64indset, set USE_TYPED_DSET
Modify lsodset, set USE_TYPED_DSET
Modify lsidset, set USE_TYPED_DSET
Modify printfdset, set USE_TYPED_DSET