mirror of
https://github.com/openharmony/js_sys_module.git
synced 2026-07-01 22:04:01 -04:00
Signed-off-by: shikai-123 <lifansheng1@huawei.com>
Modify defects of sys
This commit is contained in:
@@ -228,7 +228,7 @@ namespace OHOS::Js_sys_module::Process {
|
||||
stdErrInfo_->isNeedRun = &isNeedRun_;
|
||||
stdErrInfo_->fd = stdErrFd_[0];
|
||||
stdErrInfo_->pid = optionsInfo_->pid;
|
||||
stdErrInfo_->maxBuffSize = static_cast<size_t>(optionsInfo_->maxBuffer);
|
||||
stdErrInfo_->maxBuffSize = optionsInfo_->maxBuffer;
|
||||
napi_create_string_utf8(env_, "ReadStdErr", NAPI_AUTO_LENGTH, &resourceName);
|
||||
napi_create_async_work(env_, nullptr, resourceName, ReadStdErr, EndStdErr,
|
||||
reinterpret_cast<void*>(stdErrInfo_), &stdErrInfo_->worker);
|
||||
@@ -243,8 +243,8 @@ namespace OHOS::Js_sys_module::Process {
|
||||
return;
|
||||
}
|
||||
while (*(stdOutInfo->isNeedRun)) {
|
||||
read(stdOutInfo->fd, childStdout, sizeof(childStdout) - 1);
|
||||
if (strlen(childStdout) > 0) {
|
||||
auto readSize = read(stdOutInfo->fd, childStdout, sizeof(childStdout) - 1);
|
||||
if (readSize >= 0) {
|
||||
stdOutInfo->stdData += childStdout;
|
||||
}
|
||||
if (stdOutInfo->stdData.size() > stdOutInfo->maxBuffSize && *(stdOutInfo->isNeedRun)) {
|
||||
@@ -277,8 +277,8 @@ namespace OHOS::Js_sys_module::Process {
|
||||
return;
|
||||
}
|
||||
while (*(stdErrInfo->isNeedRun)) {
|
||||
read(stdErrInfo->fd, childStderr, sizeof(childStderr) - 1);
|
||||
if (strlen(childStderr) > 0) {
|
||||
auto readSize = read(stdErrInfo->fd, childStderr, sizeof(childStderr) - 1);
|
||||
if (readSize >= 0) {
|
||||
stdErrInfo->stdData += childStderr;
|
||||
}
|
||||
if (stdErrInfo->stdData.size() > stdErrInfo->maxBuffSize && *(stdErrInfo->isNeedRun)) {
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace OHOS::Js_sys_module::Process {
|
||||
napi_value promise = nullptr;
|
||||
std::string stdData = "";
|
||||
bool *isNeedRun = nullptr;
|
||||
size_t maxBuffSize;
|
||||
int64_t maxBuffSize;
|
||||
int fd = 0;
|
||||
int pid = 0;
|
||||
};
|
||||
|
||||
+13
-8
@@ -210,7 +210,7 @@ namespace OHOS::Js_sys_module::Process {
|
||||
|
||||
void Process::Abort() const
|
||||
{
|
||||
abort();
|
||||
exit(0);
|
||||
}
|
||||
|
||||
void Process::On(napi_value str, napi_value function)
|
||||
@@ -250,10 +250,14 @@ namespace OHOS::Js_sys_module::Process {
|
||||
size_t bufferSize = 0;
|
||||
bool flag = false;
|
||||
NAPI_CALL(env_, napi_get_value_string_utf8(env_, str, buffer, 0, &bufferSize));
|
||||
if (bufferSize > 0) {
|
||||
buffer = new char[bufferSize + 1];
|
||||
NAPI_ASSERT(env_, bufferSize > 0, "bufferSize == 0");
|
||||
buffer = new char[bufferSize + 1];
|
||||
if (memset_s(buffer, bufferSize + 1, 0, bufferSize + 1) != 0) {
|
||||
HILOG_ERROR("buffer memset error");
|
||||
delete []buffer;
|
||||
return nullptr;
|
||||
}
|
||||
NAPI_CALL(env_, napi_get_value_string_utf8(env_, str, buffer, bufferSize + 1, &bufferSize));
|
||||
napi_get_value_string_utf8(env_, str, buffer, bufferSize + 1, &bufferSize);
|
||||
std::string temp = "";
|
||||
if (buffer != nullptr) {
|
||||
temp = buffer;
|
||||
@@ -330,8 +334,9 @@ namespace OHOS::Js_sys_module::Process {
|
||||
napi_value Process::GetEnvironmentVar(napi_value name) const
|
||||
{
|
||||
char *buffer = nullptr;
|
||||
char *envvar = nullptr;
|
||||
napi_value result = nullptr;
|
||||
char buf[260 * NUM_OF_DATA] = { 0 }; // 260:Only numbers path String size is 260.
|
||||
size_t length = sizeof(buf);
|
||||
size_t bufferSize = 0;
|
||||
napi_get_value_string_utf8(env_, name, buffer, 0, &bufferSize);
|
||||
if (bufferSize > 0) {
|
||||
@@ -344,12 +349,12 @@ namespace OHOS::Js_sys_module::Process {
|
||||
delete []buffer;
|
||||
buffer = nullptr;
|
||||
}
|
||||
envvar = getenv(temp.c_str());
|
||||
if (envvar == nullptr) {
|
||||
auto envNum = uv_os_getenv(temp.c_str(), buf, &length);
|
||||
if (envNum == UV_ENOENT) {
|
||||
NAPI_CALL(env_, napi_get_undefined(env_, &result));
|
||||
return result;
|
||||
}
|
||||
napi_create_string_utf8(env_, envvar, strlen(envvar), &result);
|
||||
napi_create_string_utf8(env_, buf, strlen(buf), &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user