projects
/
umurmur.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #100 from C4K3/scheduler-timing
[umurmur.git]
/
src
/
pds.c
diff --git
a/src/pds.c
b/src/pds.c
index 60c17e4c6b68abc6b2df677a702bf8e2f033d2d7..88339d0bd907ec2c81e6f3efef75bb055818dd38 100644
(file)
--- a/
src/pds.c
+++ b/
src/pds.c
@@
-32,6
+32,7
@@
#include <stdlib.h>
#include "pds.h"
#include "log.h"
#include <stdlib.h>
#include "pds.h"
#include "log.h"
+#include "memory.h"
/*
* Data serialization functions below
/*
* Data serialization functions below
@@
-102,7
+103,7
@@
int Pds_skip(pds_t *pds, int offset)
pds->bOk = false;
return 0;
}
pds->bOk = false;
return 0;
}
-
+
}
static inline uint64_t next(pds_t *pds)
}
static inline uint64_t next(pds_t *pds)
@@
-117,9
+118,7
@@
static inline uint64_t next(pds_t *pds)
pds_t *Pds_create(uint8_t *buf, int size)
{
pds_t *Pds_create(uint8_t *buf, int size)
{
- pds_t *pds = malloc(sizeof(pds_t));
- if (pds == NULL)
- Log_fatal("Out of memory");
+ pds_t *pds = Memory_safeMalloc(1, sizeof(pds_t));
pds->data = buf;
pds->offset = pds->overshoot = 0;
pds->maxsize = size;
pds->data = buf;
pds->offset = pds->overshoot = 0;
pds->maxsize = size;
@@
-135,9
+134,9
@@
void Pds_free(pds_t *pds)
void Pds_add_double(pds_t *pds, double value)
{
double64u_t u;
void Pds_add_double(pds_t *pds, double value)
{
double64u_t u;
-
+
u.dval = value;
u.dval = value;
-
+
Pds_add_numval(pds, u.u64);
}
Pds_add_numval(pds, u.u64);
}
@@
-150,7
+149,7
@@
double Pds_get_double(pds_t *pds)
void Pds_add_numval(pds_t *pds, const uint64_t value)
{
uint64_t i = value;
void Pds_add_numval(pds_t *pds, const uint64_t value)
{
uint64_t i = value;
-
+
if ((i & 0x8000000000000000LL) && (~i < 0x100000000LL)) {
// Signed number.
i = ~i;
if ((i & 0x8000000000000000LL) && (~i < 0x100000000LL)) {
// Signed number.
i = ~i;
@@
-200,12
+199,12
@@
void Pds_add_numval(pds_t *pds, const uint64_t value)
append_val(pds, i & 0xFF);
}
}
append_val(pds, i & 0xFF);
}
}
-
+
uint64_t Pds_get_numval(pds_t *pds)
{
uint64_t i = 0;
uint64_t v = next(pds);
uint64_t Pds_get_numval(pds_t *pds)
{
uint64_t i = 0;
uint64_t v = next(pds);
-
+
if ((v & 0x80) == 0x00) {
i=(v & 0x7F);
} else if ((v & 0xC0) == 0x80) {
if ((v & 0x80) == 0x00) {
i=(v & 0x7F);
} else if ((v & 0xC0) == 0x80) {