diff options
author | Nick Nussbaum <nidkn@seanet.com> | 2013-05-13 07:57:12 +0400 |
---|---|---|
committer | Nick Nussbaum <nidkn@seanet.com> | 2013-05-13 07:57:12 +0400 |
commit | 5ef9a71f4ab628a10ccd1515bc63c41ff3952f6d (patch) | |
tree | b2f065068e24e11cfeeecbd6af4968f268620233 /vowpalwabbit/vwdll.cpp | |
parent | 7ced5a3c52c55360feeed0007db732444db0c3d3 (diff) |
Fix C interface for libvw. Add c sample proj calling library. Remove extra delete from VW_Finish
Diffstat (limited to 'vowpalwabbit/vwdll.cpp')
-rw-r--r-- | vowpalwabbit/vwdll.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/vowpalwabbit/vwdll.cpp b/vowpalwabbit/vwdll.cpp index b43d4016..330979cf 100644 --- a/vowpalwabbit/vwdll.cpp +++ b/vowpalwabbit/vwdll.cpp @@ -53,7 +53,6 @@ extern "C" release_parser_datastructures(*pointer); VW::finish(*pointer); - delete pointer; } VW_DLL_MEMBER VW_EXAMPLE VW_CALLING_CONV VW_ImportExample(VW_HANDLE handle, VW_FEATURE_SPACE* features, size_t len) @@ -63,11 +62,11 @@ extern "C" return static_cast<VW_EXAMPLE>(VW::import_example(*pointer, f, len)); } - VW_DLL_MEMBER VW_FEATURE_SPACE VW_CALLING_CONV VW_ExportExample(VW_HANDLE handle, VW_EXAMPLE e, size_t& len) + VW_DLL_MEMBER VW_FEATURE_SPACE VW_CALLING_CONV VW_ExportExample(VW_HANDLE handle, VW_EXAMPLE e, size_t * plen) { vw* pointer = static_cast<vw*>(handle); example* ex = static_cast<example*>(e); - return static_cast<VW_FEATURE_SPACE>(VW::export_example(*pointer, ex, len)); + return static_cast<VW_FEATURE_SPACE>(VW::export_example(*pointer, ex, *plen)); } VW_DLL_MEMBER void VW_CALLING_CONV VW_ReleaseFeatureSpace(VW_FEATURE_SPACE* features, size_t len) @@ -115,14 +114,14 @@ extern "C" VW::finish_example(*pointer, static_cast<example*>(e)); } - VW_DLL_MEMBER uint32_t VW_CALLING_CONV VW_HashSpace(VW_HANDLE handle, const char16_t * s) + VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashSpace(VW_HANDLE handle, const char16_t * s) { std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> convert; std::string sa(convert.to_bytes(s)); return VW_HashSpaceA(handle,sa.c_str()); } - VW_DLL_MEMBER uint32_t VW_CALLING_CONV VW_HashSpaceA(VW_HANDLE handle, const char * s) + VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashSpaceA(VW_HANDLE handle, const char * s) { vw * pointer = static_cast<vw*>(handle); string str(s); @@ -130,7 +129,7 @@ extern "C" } - VW_DLL_MEMBER uint32_t VW_CALLING_CONV VW_HashFeature(VW_HANDLE handle, const char16_t * s, unsigned long u) + VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashFeature(VW_HANDLE handle, const char16_t * s, unsigned long u) { std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> convert; std::string sa(convert.to_bytes(s)); @@ -138,7 +137,7 @@ extern "C" } - VW_DLL_MEMBER uint32_t VW_CALLING_CONV VW_HashFeatureA(VW_HANDLE handle, const char * s, unsigned long u) + VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashFeatureA(VW_HANDLE handle, const char * s, unsigned long u) { vw * pointer = static_cast<vw*>(handle); string str(s); @@ -159,13 +158,13 @@ extern "C" return ex->final_prediction; } - VW_DLL_MEMBER float VW_CALLING_CONV VW_Get_Weight(VW_HANDLE handle, uint32_t index) + VW_DLL_MEMBER float VW_CALLING_CONV VW_Get_Weight(VW_HANDLE handle, size_t index) { vw* pointer = static_cast<vw*>(handle); - return VW::get_weight(*pointer, index); + return VW::get_weight(*pointer, (uint32_t) index); } - VW_DLL_MEMBER uint32_t VW_CALLING_CONV VW_Num_Weights(VW_HANDLE handle) + VW_DLL_MEMBER size_t VW_CALLING_CONV VW_Num_Weights(VW_HANDLE handle) { vw* pointer = static_cast<vw*>(handle); return VW::num_weights(*pointer); |