forked from Green-Sky/tomato
Squashed 'external/toxcore/c-toxcore/' changes from 67badf694..82460b212
82460b212 feat: add ngc events 24b54722a fix: Ensure we have allocators available for the error paths. 48dbcfebc cleanup: Remove redundant `-DSODIUM_EXPORT` from definitions. 0cef46ee9 cleanup: Fix a few more clang-tidy warnings. 0c5b918e9 cleanup: Fix a few more clang-tidy warnings. 4d3c97f49 cleanup: Enforce stricter identifier naming using clang-tidy. a549807df refactor: Add `mem` module to allow tests to override allocators. 6133fb153 chore: Add devcontainer setup for codespaces. 620e07ecd chore: Set a timeout for tests started using Conan c0ec33b16 chore: Migrate Windows CI from Appveyor to Azure DevOps 8ed47f3ef fix incorrect documentation a1e245841 docs: Fix doxygen config and remove some redundant comments. b0f633185 chore: Fix the Android CI job 7469a529b fix: Add missing `#include <array>`. 2b1a6b0d2 add missing ngc constants getter declarations and definitions 2e02d5637 chore: Add missing module dependencies. REVERT: 67badf694 feat: add ngc events git-subtree-dir: external/toxcore/c-toxcore git-subtree-split: 82460b2124216af1ac9d63060de310a682a2fd15
This commit is contained in:
@ -4,6 +4,7 @@
|
||||
|
||||
#include "tox_events.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -11,7 +12,9 @@
|
||||
#include "bin_unpack.h"
|
||||
#include "ccompat.h"
|
||||
#include "events/events_alloc.h"
|
||||
#include "mem.h"
|
||||
#include "tox.h"
|
||||
#include "tox_private.h"
|
||||
|
||||
|
||||
/*****************************************************
|
||||
@ -339,7 +342,7 @@ void tox_events_get_bytes(const Tox_Events *events, uint8_t *bytes)
|
||||
bin_pack_obj(tox_events_bin_pack_handler, events, bytes, UINT32_MAX);
|
||||
}
|
||||
|
||||
Tox_Events *tox_events_load(const uint8_t *bytes, uint32_t bytes_size)
|
||||
Tox_Events *tox_events_load(const Tox_System *sys, const uint8_t *bytes, uint32_t bytes_size)
|
||||
{
|
||||
Bin_Unpack *bu = bin_unpack_new(bytes, bytes_size);
|
||||
|
||||
@ -347,7 +350,7 @@ Tox_Events *tox_events_load(const uint8_t *bytes, uint32_t bytes_size)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Tox_Events *events = (Tox_Events *)calloc(1, sizeof(Tox_Events));
|
||||
Tox_Events *events = (Tox_Events *)mem_alloc(sys->mem, sizeof(Tox_Events));
|
||||
|
||||
if (events == nullptr) {
|
||||
bin_unpack_free(bu);
|
||||
@ -368,8 +371,11 @@ Tox_Events *tox_events_load(const uint8_t *bytes, uint32_t bytes_size)
|
||||
return events;
|
||||
}
|
||||
|
||||
bool tox_events_equal(const Tox_Events *a, const Tox_Events *b)
|
||||
bool tox_events_equal(const Tox_System *sys, const Tox_Events *a, const Tox_Events *b)
|
||||
{
|
||||
assert(sys != nullptr);
|
||||
assert(sys->mem != nullptr);
|
||||
|
||||
const uint32_t a_size = tox_events_bytes_size(a);
|
||||
const uint32_t b_size = tox_events_bytes_size(b);
|
||||
|
||||
@ -377,12 +383,12 @@ bool tox_events_equal(const Tox_Events *a, const Tox_Events *b)
|
||||
return false;
|
||||
}
|
||||
|
||||
uint8_t *a_bytes = (uint8_t *)malloc(a_size);
|
||||
uint8_t *b_bytes = (uint8_t *)malloc(b_size);
|
||||
uint8_t *a_bytes = (uint8_t *)mem_balloc(sys->mem, a_size);
|
||||
uint8_t *b_bytes = (uint8_t *)mem_balloc(sys->mem, b_size);
|
||||
|
||||
if (a_bytes == nullptr || b_bytes == nullptr) {
|
||||
free(b_bytes);
|
||||
free(a_bytes);
|
||||
mem_delete(sys->mem, b_bytes);
|
||||
mem_delete(sys->mem, a_bytes);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -391,8 +397,8 @@ bool tox_events_equal(const Tox_Events *a, const Tox_Events *b)
|
||||
|
||||
const bool ret = memcmp(a_bytes, b_bytes, a_size) == 0;
|
||||
|
||||
free(b_bytes);
|
||||
free(a_bytes);
|
||||
mem_delete(sys->mem, b_bytes);
|
||||
mem_delete(sys->mem, a_bytes);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user