summaryrefslogtreecommitdiffstats
path: root/parameter/ParameterBlackboard.cpp
diff options
context:
space:
mode:
authorSebastien Gonzalve <sebastien.gonzalve@intel.com>2015-04-10 09:28:48 +0200
committerEric Laurent <elaurent@google.com>2015-04-24 13:39:13 -0700
commit76fa9021317cc7f93f494795baf8c18f871ad3e5 (patch)
tree79c644cac6a8df878c02f209f032b49927f960a8 /parameter/ParameterBlackboard.cpp
parent316559093d972d8b7d51290103d68395bfec6064 (diff)
downloadexternal_parameter-framework-76fa9021317cc7f93f494795baf8c18f871ad3e5.zip
external_parameter-framework-76fa9021317cc7f93f494795baf8c18f871ad3e5.tar.gz
external_parameter-framework-76fa9021317cc7f93f494795baf8c18f871ad3e5.tar.bz2
Change blackboard write/readString prototype
Those functions are used in one place and let the caller transform a std::string to a char * which makes the use of alloca necessary. Moreover, the readString cannot know if the pointer given in input points to a buffer with enough space, making it dangerous. This patch reworks the API so that write/readString() get std::string and lets the implementation play with char *. This also allows to get rid of alloca() use which is quite dangerous. Change-Id: I973e4987278289bb914c4e194b86e924a1c88a6d Signed-off-by: Sebastien Gonzalve <sebastien.gonzalve@intel.com>
Diffstat (limited to 'parameter/ParameterBlackboard.cpp')
-rw-r--r--parameter/ParameterBlackboard.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/parameter/ParameterBlackboard.cpp b/parameter/ParameterBlackboard.cpp
index 3af9a1d..6001c77 100644
--- a/parameter/ParameterBlackboard.cpp
+++ b/parameter/ParameterBlackboard.cpp
@@ -99,14 +99,14 @@ void CParameterBlackboard::readInteger(void* pvDstData, uint32_t uiSize, uint32_
}
}
-void CParameterBlackboard::writeString(const char* pcSrcData, uint32_t uiOffset)
+void CParameterBlackboard::writeString(const std::string &input, uint32_t uiOffset)
{
- strcpy((char*)_pucData + uiOffset, pcSrcData);
+ strcpy((char*)_pucData + uiOffset, input.c_str());
}
-void CParameterBlackboard::readString(char* pcDstData, uint32_t uiOffset) const
+void CParameterBlackboard::readString(std::string &output, uint32_t uiOffset) const
{
- strcpy(pcDstData, (const char*)_pucData + uiOffset);
+ output = std::string((const char*)_pucData + uiOffset);
}
// Access from/to subsystems