Repository: celix Updated Branches: refs/heads/feature/CELIX-237_rsa-ffi f9ed9b33b -> 481e5c861
CELIX-237: Added extra test Project: http://git-wip-us.apache.org/repos/asf/celix/repo Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/a2b09e22 Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/a2b09e22 Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/a2b09e22 Branch: refs/heads/feature/CELIX-237_rsa-ffi Commit: a2b09e223114b509a01209d418cd479bb09e4b7c Parents: f9ed9b3 Author: Pepijn Noltes <pepijnnol...@gmail.com> Authored: Fri Jul 31 15:57:42 2015 +0200 Committer: Pepijn Noltes <pepijnnol...@gmail.com> Committed: Fri Jul 31 15:57:42 2015 +0200 ---------------------------------------------------------------------- .../dynamic_function_interface/dyn_type.c | 4 ++-- .../dynamic_function_interface/dyn_type.h | 2 ++ .../tst/dyn_type_tests.cpp | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/a2b09e22/remote_services/dynamic_function_interface/dyn_type.c ---------------------------------------------------------------------- diff --git a/remote_services/dynamic_function_interface/dyn_type.c b/remote_services/dynamic_function_interface/dyn_type.c index af98fe9..2946607 100644 --- a/remote_services/dynamic_function_interface/dyn_type.c +++ b/remote_services/dynamic_function_interface/dyn_type.c @@ -595,7 +595,7 @@ void dynType_free(dyn_type *type, void *loc) { void dynType_deepFree(dyn_type *type, void *loc, bool alsoDeleteSelf) { if (loc != NULL) { dyn_type *subType = NULL; - const char *text = NULL; + char *text = NULL; switch (type->type) { case DYN_TYPE_COMPLEX : dynType_freeComplexType(type, loc); @@ -608,7 +608,7 @@ void dynType_deepFree(dyn_type *type, void *loc, bool alsoDeleteSelf) { dynType_deepFree(subType, *(void **)loc, true); break; case DYN_TYPE_TEXT : - text = *(const char **)loc; + text = *(char **)loc; free(text); break; } http://git-wip-us.apache.org/repos/asf/celix/blob/a2b09e22/remote_services/dynamic_function_interface/dyn_type.h ---------------------------------------------------------------------- diff --git a/remote_services/dynamic_function_interface/dyn_type.h b/remote_services/dynamic_function_interface/dyn_type.h index c4f33a2..9fdbff2 100644 --- a/remote_services/dynamic_function_interface/dyn_type.h +++ b/remote_services/dynamic_function_interface/dyn_type.h @@ -128,8 +128,10 @@ int dynType_sequence_increaseLengthAndReturnLastLoc(dyn_type *type, void *seqLoc dyn_type * dynType_sequence_itemType(dyn_type *type); uint32_t dynType_sequence_length(void *seqLoc); +//typed pointer int dynType_typedPointer_getTypedType(dyn_type *type, dyn_type **typedType); +//text int dynType_text_allocAndInit(dyn_type *type, void *textLoc, const char *value); //simple http://git-wip-us.apache.org/repos/asf/celix/blob/a2b09e22/remote_services/dynamic_function_interface/tst/dyn_type_tests.cpp ---------------------------------------------------------------------- diff --git a/remote_services/dynamic_function_interface/tst/dyn_type_tests.cpp b/remote_services/dynamic_function_interface/tst/dyn_type_tests.cpp index daee4cf..96f64fa 100644 --- a/remote_services/dynamic_function_interface/tst/dyn_type_tests.cpp +++ b/remote_services/dynamic_function_interface/tst/dyn_type_tests.cpp @@ -173,3 +173,18 @@ TEST(DynTypeTests, AssignTest2) { dynType_destroy(type); } + +TEST(DynTypeTests, AssignTest3) { + int simple = 1; + dyn_type *type = NULL; + int rc = dynType_parseWithStr("N", NULL, NULL, &type); + CHECK_EQUAL(0, rc); + + int newValue = 42; + void *loc = &simple; + void *input = &newValue; + dynType_simple_setValue(type, loc, input); + CHECK_EQUAL(42, simple); + dynType_destroy(type); +} +