Skip to content

Commit

Permalink
libpressio version 0.58.0
Browse files Browse the repository at this point in the history
Major Changes

+ Bug fixes requiring an ABI break/new functions
  + defined missing methods for options for {u,}int{8,16,64}_t in the
    C public header
  + pressio_options_set_strings is now more const correct
  + fixed include file for pressio_options_json.h when used for C++ so
    that names are extern "C"
  • Loading branch information
robertu94 committed Mar 4, 2021
1 parent ae28f8a commit 936ba74
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 7 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
project(libpressio VERSION "0.57.0" LANGUAGES CXX C)
project(libpressio VERSION "0.58.0" LANGUAGES CXX C)

#correct was to set a default build type
# https://blog.kitware.com/cmake-and-the-default-build-type/
Expand Down
2 changes: 1 addition & 1 deletion COPYRIGHT.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Copyright © 2021 , UChicago Argonne, LLC
All Rights Reserved
[libpressio, Version 0.56.2]
[libpressio, Version 0.58.0]
Robert Underwood
Argonne National Laboratory

Expand Down
2 changes: 1 addition & 1 deletion include/libpressio_ext/cpp/data.h
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ struct pressio_data {
static pressio_data clone(pressio_data const& src){
size_t bytes = src.size_in_bytes();
unsigned char* data = nullptr;
if(bytes != 0) {
if(bytes != 0 && src.data() != nullptr) {
data = static_cast<unsigned char*>(malloc(bytes));
memcpy(data, src.data(), src.size_in_bytes());
}
Expand Down
4 changes: 2 additions & 2 deletions include/libpressio_ext/json/pressio_options_json.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#ifndef __cplusplus
#ifdef __cplusplus
extern "C" {
#endif

Expand Down Expand Up @@ -27,6 +27,6 @@ extern "C" {
*/
char* pressio_options_to_json(struct pressio* library, struct pressio_options const* options);

#ifndef __cplusplus
#ifdef __cplusplus
}
#endif
8 changes: 7 additions & 1 deletion include/pressio_options.h
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,12 @@ size_t pressio_options_num_set(struct pressio_options const* options);
pressio_options_define_type_cast(name, type) \
pressio_options_define_type_as(name, type)

pressio_options_define_type(uinteger8, uint8_t)
pressio_options_define_type(integer8, int8_t)
pressio_options_define_type(uinteger16, uint16_t)
pressio_options_define_type(integer16, int16_t)
pressio_options_define_type(uinteger64, uint64_t)
pressio_options_define_type(integer64, int64_t)
pressio_options_define_type(uinteger, uint32_t)
pressio_options_define_type(integer, int32_t)
pressio_options_define_type(float, float)
Expand All @@ -258,7 +264,7 @@ pressio_options_define_type_cast(string, char*)
\param[in] size the number of strings passed
\param[in] values the value to change to
*/
void pressio_options_set_strings(struct pressio_options* options, const char* key, size_t size, const char** values);
void pressio_options_set_strings(struct pressio_options* options, const char* key, size_t size, const char* const* values);
/** Gets a particular value in a map if it exists
*
* pressio_options_get_string returns a newly allocated copy of the string
Expand Down
8 changes: 7 additions & 1 deletion src/pressio_options.cc
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,12 @@ size_t pressio_options_num_set(struct pressio_options const* options) {
pressio_options_define_type_impl_cast(name, type) \
pressio_options_define_type_impl_as(name, type)

pressio_options_define_type_impl(uinteger8, uint8_t)
pressio_options_define_type_impl(integer8, int8_t)
pressio_options_define_type_impl(uinteger16, uint16_t)
pressio_options_define_type_impl(integer16, int16_t)
pressio_options_define_type_impl(uinteger64, uint64_t)
pressio_options_define_type_impl(integer64, int64_t)
pressio_options_define_type_impl(uinteger, uint32_t)
pressio_options_define_type_impl(integer, int32_t)
pressio_options_define_type_impl(float, float)
Expand Down Expand Up @@ -120,7 +126,7 @@ enum pressio_options_key_status pressio_options_as_data(struct pressio_options c
}

//special case: strings -- to get/pass length information
void pressio_options_set_strings(struct pressio_options* options, const char* key, size_t size, const char** values) {
void pressio_options_set_strings(struct pressio_options* options, const char* key, size_t size, const char* const* values) {
std::vector<std::string> strings(values, values+size);
return options->set(key, strings);
}
Expand Down

0 comments on commit 936ba74

Please sign in to comment.