Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
tianlh
LightGBM-DCU
Commits
15e77d76
Commit
15e77d76
authored
Dec 04, 2017
by
Guolin Ke
Browse files
[R] fix encodeChar
parent
c2191aac
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
8 deletions
+6
-8
src/lightgbm_R.cpp
src/lightgbm_R.cpp
+6
-8
No files found.
src/lightgbm_R.cpp
View file @
15e77d76
...
...
@@ -32,9 +32,7 @@
using
namespace
LightGBM
;
LGBM_SE
EncodeChar
(
LGBM_SE
dest
,
const
char
*
src
,
LGBM_SE
buf_len
,
LGBM_SE
actual_len
)
{
// +1 for '\0'
size_t
str_len
=
std
::
strlen
(
src
)
+
1
;
LGBM_SE
EncodeChar
(
LGBM_SE
dest
,
const
char
*
src
,
LGBM_SE
buf_len
,
LGBM_SE
actual_len
,
size_t
str_len
)
{
if
(
str_len
>
INT32_MAX
)
{
Log
::
Fatal
(
"Don't support large string in R-package."
);
}
...
...
@@ -46,7 +44,7 @@ LGBM_SE EncodeChar(LGBM_SE dest, const char* src, LGBM_SE buf_len, LGBM_SE actua
}
LGBM_SE
LGBM_GetLastError_R
(
LGBM_SE
buf_len
,
LGBM_SE
actual_len
,
LGBM_SE
err_msg
)
{
return
EncodeChar
(
err_msg
,
LGBM_GetLastError
(),
buf_len
,
actual_len
);
return
EncodeChar
(
err_msg
,
LGBM_GetLastError
(),
buf_len
,
actual_len
,
std
::
strlen
(
LGBM_GetLastError
())
+
1
);
}
LGBM_SE
LGBM_DatasetCreateFromFile_R
(
LGBM_SE
filename
,
...
...
@@ -166,7 +164,7 @@ LGBM_SE LGBM_DatasetGetFeatureNames_R(LGBM_SE handle,
ptr_names
.
data
(),
&
out_len
));
CHECK
(
len
==
out_len
);
auto
merge_str
=
Common
::
Join
<
char
*>
(
ptr_names
,
"
\t
"
);
EncodeChar
(
feature_names
,
merge_str
.
c_str
(),
buf_len
,
actual_len
);
EncodeChar
(
feature_names
,
merge_str
.
c_str
(),
buf_len
,
actual_len
,
merge_str
.
size
()
+
1
);
R_API_END
();
}
...
...
@@ -441,7 +439,7 @@ LGBM_SE LGBM_BoosterGetEvalNames_R(LGBM_SE handle,
CHECK_CALL
(
LGBM_BoosterGetEvalNames
(
R_GET_PTR
(
handle
),
&
out_len
,
ptr_names
.
data
()));
CHECK
(
out_len
==
len
);
auto
merge_names
=
Common
::
Join
<
char
*>
(
ptr_names
,
"
\t
"
);
EncodeChar
(
eval_names
,
merge_names
.
c_str
(),
buf_len
,
actual_len
);
EncodeChar
(
eval_names
,
merge_names
.
c_str
(),
buf_len
,
actual_len
,
merge_names
.
size
()
+
1
);
R_API_END
();
}
...
...
@@ -604,7 +602,7 @@ LGBM_SE LGBM_BoosterSaveModelToString_R(LGBM_SE handle,
int64_t
out_len
=
0
;
std
::
vector
<
char
>
inner_char_buf
(
R_AS_INT
(
buffer_len
));
CHECK_CALL
(
LGBM_BoosterSaveModelToString
(
R_GET_PTR
(
handle
),
R_AS_INT
(
num_iteration
),
R_AS_INT
(
buffer_len
),
&
out_len
,
inner_char_buf
.
data
()));
EncodeChar
(
out_str
,
inner_char_buf
.
data
(),
buffer_len
,
actual_len
);
EncodeChar
(
out_str
,
inner_char_buf
.
data
(),
buffer_len
,
actual_len
,
static_cast
<
size_t
>
(
out_len
)
);
R_API_END
();
}
...
...
@@ -618,6 +616,6 @@ LGBM_SE LGBM_BoosterDumpModel_R(LGBM_SE handle,
int64_t
out_len
=
0
;
std
::
vector
<
char
>
inner_char_buf
(
R_AS_INT
(
buffer_len
));
CHECK_CALL
(
LGBM_BoosterDumpModel
(
R_GET_PTR
(
handle
),
R_AS_INT
(
num_iteration
),
R_AS_INT
(
buffer_len
),
&
out_len
,
inner_char_buf
.
data
()));
EncodeChar
(
out_str
,
inner_char_buf
.
data
(),
buffer_len
,
actual_len
);
EncodeChar
(
out_str
,
inner_char_buf
.
data
(),
buffer_len
,
actual_len
,
static_cast
<
size_t
>
(
out_len
)
);
R_API_END
();
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment