mirror of
https://github.com/openharmony/js_util_module.git
synced 2026-07-19 10:17:53 -04:00
+20
-12
@@ -55,14 +55,14 @@ namespace OHOS::Util {
|
||||
void *data = nullptr;
|
||||
napi_value arrayBuffer = nullptr;
|
||||
size_t bufferSize = outputLen;
|
||||
NAPI_CALL(env, napi_create_arraybuffer(env, bufferSize, &data, &arrayBuffer));
|
||||
napi_create_arraybuffer(env, bufferSize, &data, &arrayBuffer);
|
||||
if (memcpy_s(data, bufferSize, reinterpret_cast<const void*>(rets), bufferSize) != 0) {
|
||||
FreeMemory(rets);
|
||||
HILOG_ERROR("copy ret to arraybuffer error");
|
||||
return nullptr;
|
||||
}
|
||||
napi_value result = nullptr;
|
||||
NAPI_CALL(env, napi_create_typedarray(env, napi_uint8_array, bufferSize, arrayBuffer, 0, &result));
|
||||
napi_create_typedarray(env, napi_uint8_array, bufferSize, arrayBuffer, 0, &result);
|
||||
FreeMemory(rets);
|
||||
return result;
|
||||
}
|
||||
@@ -174,7 +174,7 @@ namespace OHOS::Util {
|
||||
void *data = nullptr;
|
||||
napi_value arrayBuffer = nullptr;
|
||||
size_t bufferSize = decodeOutLen;
|
||||
NAPI_CALL(env, napi_create_arraybuffer(env, bufferSize, &data, &arrayBuffer));
|
||||
napi_create_arraybuffer(env, bufferSize, &data, &arrayBuffer);
|
||||
if (memcpy_s(data, bufferSize, reinterpret_cast<const void*>(pret), bufferSize) != 0) {
|
||||
FreeMemory(inputString);
|
||||
FreeMemory(pret);
|
||||
@@ -182,7 +182,7 @@ namespace OHOS::Util {
|
||||
return nullptr;
|
||||
}
|
||||
napi_value result = nullptr;
|
||||
NAPI_CALL(env, napi_create_typedarray(env, napi_uint8_array, bufferSize, arrayBuffer, 0, &result));
|
||||
napi_create_typedarray(env, napi_uint8_array, bufferSize, arrayBuffer, 0, &result);
|
||||
FreeMemory(inputString);
|
||||
FreeMemory(pret);
|
||||
return result;
|
||||
@@ -284,18 +284,16 @@ namespace OHOS::Util {
|
||||
/* Memory cleanup function */
|
||||
void Base64::FreeMemory(unsigned char *address)
|
||||
{
|
||||
unsigned char *temp = address;
|
||||
if (temp != nullptr) {
|
||||
delete[] temp;
|
||||
temp = nullptr;
|
||||
if (address != nullptr) {
|
||||
delete[] address;
|
||||
address = nullptr;
|
||||
}
|
||||
}
|
||||
void Base64::FreeMemory(char *address)
|
||||
{
|
||||
char *temp = address;
|
||||
if (temp != nullptr) {
|
||||
delete[] temp;
|
||||
temp = nullptr;
|
||||
if (address != nullptr) {
|
||||
delete[] address;
|
||||
address = nullptr;
|
||||
}
|
||||
}
|
||||
napi_value Base64::Encode(napi_value src)
|
||||
@@ -367,6 +365,7 @@ namespace OHOS::Util {
|
||||
if (outputLen > 0) {
|
||||
ret = new unsigned char[outputLen + 1];
|
||||
if (memset_s(ret, outputLen + 1, '\0', outputLen + 1) != 0) {
|
||||
FreeMemory(ret);
|
||||
napi_throw_error(encodeInfo->env, "-1", "ret path memset_s failed");
|
||||
}
|
||||
} else {
|
||||
@@ -544,6 +543,7 @@ namespace OHOS::Util {
|
||||
if (retLen > 0) {
|
||||
retDecode = new unsigned char[retLen + 1];
|
||||
if (memset_s(retDecode, retLen + 1, '\0', retLen + 1) != 0) {
|
||||
FreeMemory(retDecode);
|
||||
napi_throw_error(decodeInfo->env, "-1", "decode retDecode memset_s failed");
|
||||
}
|
||||
} else {
|
||||
@@ -596,4 +596,12 @@ namespace OHOS::Util {
|
||||
delete[] stdDecodeInfo->sinputDecoding;
|
||||
delete stdDecodeInfo;
|
||||
}
|
||||
|
||||
void FreeMemory(unsigned char *address)
|
||||
{
|
||||
if (address != nullptr) {
|
||||
delete[] address;
|
||||
address = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
+6
-5
@@ -46,11 +46,12 @@ namespace OHOS::Util {
|
||||
napi_env env;
|
||||
};
|
||||
|
||||
enum ConverterFlags {
|
||||
BIT_FLG = 0x40,
|
||||
SIXTEEN_FLG = 0x3F,
|
||||
XFF_FLG = 0xFF,
|
||||
};
|
||||
enum ConverterFlags {
|
||||
BIT_FLG = 0x40,
|
||||
SIXTEEN_FLG = 0x3F,
|
||||
XFF_FLG = 0xFF,
|
||||
};
|
||||
void FreeMemory(unsigned char *address);
|
||||
unsigned char *EncodeAchieves(EncodeInfo *encodeInfo);
|
||||
unsigned char *DecodeAchieves(DecodeInfo *decodeInfo);
|
||||
class Base64 {
|
||||
|
||||
@@ -41,14 +41,19 @@ namespace OHOS::Util {
|
||||
NAPI_CALL(env_, napi_get_value_string_utf8(env_, src, buffer, 0, &bufferSize));
|
||||
NAPI_ASSERT(env_, bufferSize > 0, "bufferSize == 0");
|
||||
buffer = new char[bufferSize + 1];
|
||||
|
||||
NAPI_CALL(env_, napi_get_value_string_utf8(env_, src, buffer, bufferSize + 1, &bufferSize));
|
||||
if (memset_s(buffer, bufferSize + 1, 0, bufferSize + 1) != 0) {
|
||||
HILOG_ERROR("buffer memset error");
|
||||
delete []buffer;
|
||||
return nullptr;
|
||||
}
|
||||
napi_get_value_string_utf8(env_, src, buffer, bufferSize + 1, &bufferSize);
|
||||
|
||||
void *data = nullptr;
|
||||
napi_value arrayBuffer = nullptr;
|
||||
NAPI_CALL(env_, napi_create_arraybuffer(env_, bufferSize, &data, &arrayBuffer));
|
||||
napi_create_arraybuffer(env_, bufferSize, &data, &arrayBuffer);
|
||||
if (memcpy_s(data, bufferSize, reinterpret_cast<void*>(buffer), bufferSize) != 0) {
|
||||
HILOG_ERROR("copy buffer to arraybuffer error");
|
||||
delete []buffer;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
+40
-23
@@ -23,6 +23,7 @@
|
||||
|
||||
#include "napi/native_api.h"
|
||||
#include "napi/native_node_api.h"
|
||||
#include "securec.h"
|
||||
#include "utils/log.h"
|
||||
|
||||
extern const char _binary_util_js_js_start[];
|
||||
@@ -30,6 +31,17 @@ extern const char _binary_util_js_js_end[];
|
||||
extern const char _binary_util_abc_start[];
|
||||
extern const char _binary_util_abc_end[];
|
||||
namespace OHOS::Util {
|
||||
static char* ApplyMemory(const size_t length)
|
||||
{
|
||||
char *type = new char[length + 1];
|
||||
if (memset_s(type, length + 1, '\0', length + 1) != 0) {
|
||||
HILOG_ERROR("type memset_s failed");
|
||||
delete[] type;
|
||||
return nullptr;
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
static std::string temp = "cdfijoOs";
|
||||
static std::string DealWithPrintf(const std::string &format, const std::vector<std::string> &value)
|
||||
{
|
||||
@@ -112,26 +124,31 @@ namespace OHOS::Util {
|
||||
size_t argc = 0;
|
||||
napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr);
|
||||
napi_value *argv = nullptr;
|
||||
if (argc > 0) {
|
||||
argv = new napi_value[argc];
|
||||
napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
|
||||
char *format = nullptr;
|
||||
size_t formatsize = 0;
|
||||
napi_get_value_string_utf8(env, argv[0], nullptr, 0, &formatsize);
|
||||
if (formatsize > 0) {
|
||||
format = new char[formatsize + 1];
|
||||
napi_get_value_string_utf8(env, argv[0], format, formatsize + 1, &formatsize);
|
||||
std::string str = format;
|
||||
delete []format;
|
||||
delete []argv;
|
||||
argv = nullptr;
|
||||
format = nullptr;
|
||||
return FormatString(env, str);
|
||||
}
|
||||
NAPI_ASSERT(env, argc > 0, "argc == 0");
|
||||
argv = new napi_value[argc + 1];
|
||||
if (memset_s(argv, argc + 1, 0, argc + 1) != 0) {
|
||||
HILOG_ERROR("argv memset error");
|
||||
delete []argv;
|
||||
return nullptr;
|
||||
}
|
||||
napi_value res = nullptr;
|
||||
NAPI_CALL(env, napi_get_undefined(env, &res));
|
||||
return res;
|
||||
napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
|
||||
char *format = nullptr;
|
||||
size_t formatsize = 0;
|
||||
napi_get_value_string_utf8(env, argv[0], nullptr, 0, &formatsize);
|
||||
NAPI_ASSERT(env, formatsize > 0, "formatsize == 0");
|
||||
format = new char[formatsize + 1];
|
||||
if (memset_s(format, formatsize + 1, 0, formatsize + 1) != 0) {
|
||||
HILOG_ERROR("format memset error");
|
||||
delete []format;
|
||||
return nullptr;
|
||||
}
|
||||
napi_get_value_string_utf8(env, argv[0], format, formatsize + 1, &formatsize);
|
||||
std::string str = format;
|
||||
delete []format;
|
||||
delete []argv;
|
||||
argv = nullptr;
|
||||
format = nullptr;
|
||||
return FormatString(env, str);
|
||||
}
|
||||
|
||||
static std::string PrintfString(const std::string &format, const std::vector<std::string> &value)
|
||||
@@ -259,9 +276,9 @@ namespace OHOS::Util {
|
||||
// first para
|
||||
NAPI_CALL(env, napi_get_value_string_utf8(env, argv, nullptr, 0, &typeLen));
|
||||
if (typeLen > 0) {
|
||||
type = new char[typeLen + 1]();
|
||||
type = ApplyMemory(typeLen);
|
||||
}
|
||||
NAPI_CALL(env, napi_get_value_string_utf8(env, argv, type, typeLen + 1, &typeLen));
|
||||
napi_get_value_string_utf8(env, argv, type, typeLen + 1, &typeLen);
|
||||
} else if (tempArgc == 2) { // 2: The number of parameters is 2.
|
||||
argc = 2; // 2: The number of parameters is 2.
|
||||
napi_value argv[2] = { 0 };
|
||||
@@ -269,9 +286,9 @@ namespace OHOS::Util {
|
||||
// first para
|
||||
NAPI_CALL(env, napi_get_value_string_utf8(env, argv[0], nullptr, 0, &typeLen));
|
||||
if (typeLen > 0) {
|
||||
type = new char[typeLen + 1]();
|
||||
type = ApplyMemory(typeLen);
|
||||
}
|
||||
NAPI_CALL(env, napi_get_value_string_utf8(env, argv[0], type, typeLen + 1, &typeLen));
|
||||
napi_get_value_string_utf8(env, argv[0], type, typeLen + 1, &typeLen);
|
||||
// second para
|
||||
GetSecPara(env, argv[1], paraVec);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user