Skip to content

Commit

Permalink
Cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
cb1kenobi committed Jan 3, 2025
1 parent 1685cf9 commit 6d3cf02
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 11 deletions.
15 changes: 8 additions & 7 deletions src/env.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1113,12 +1113,15 @@ napi_value ExtendedEnv::getUserSharedBuffer(std::string key, napi_value default_
size_t default_buffer_size;
napi_get_arraybuffer_info(env, default_buffer, &default_buffer_data, &default_buffer_size);

std::shared_ptr<char> buffer_data = std::make_shared<char>(default_buffer_size);
memcpy(buffer_data.get(), default_buffer_data, default_buffer_size);
char* buffer_data = new char[default_buffer_size];
memcpy(buffer_data, default_buffer_data, default_buffer_size);

MDB_val buffer;
buffer.mv_data = (void*)buffer_data;
buffer.mv_size = default_buffer_size;

user_buffer_t user_shared_buffer;
user_shared_buffer.data = buffer_data;
user_shared_buffer.size = default_buffer_size;
user_shared_buffer.buffer = buffer;
resolution = userSharedBuffers.emplace(key, user_shared_buffer).first;
}

Expand All @@ -1135,10 +1138,8 @@ napi_value ExtendedEnv::getUserSharedBuffer(std::string key, napi_value default_
resolution->second.callbacks.push_back(callback);
}

// Get the raw pointer from the shared_ptr
char* buffer_data = resolution->second.data.get();
napi_value buffer_value;
napi_create_external_arraybuffer(env, buffer_data, resolution->second.size, nullptr, nullptr, &buffer_value);
napi_create_external_arraybuffer(env, resolution->second.buffer.mv_data, resolution->second.buffer.mv_size, nullptr, nullptr, &buffer_value);

pthread_mutex_unlock(&userBuffersLock);

Expand Down
5 changes: 1 addition & 4 deletions src/lmdb-js.h
Original file line number Diff line number Diff line change
Expand Up @@ -282,13 +282,10 @@ typedef struct callback_holder_t {
EnvWrap* ew;
std::vector<napi_threadsafe_function> callbacks;
} callback_holder_t;

typedef struct user_buffer_t {
std::shared_ptr<char> data;
size_t size;
MDB_val buffer;
std::vector<napi_threadsafe_function> callbacks;
} user_buffer_t;

class ExtendedEnv {
public:
ExtendedEnv();
Expand Down

0 comments on commit 6d3cf02

Please sign in to comment.