mirror of
https://github.com/zeromq/libzmq.git
synced 2025-03-09 23:36:04 +00:00
Merge branch 'maint'
* maint: Prior to this patch prefix_tree asserts. Fix for signaler_t on HP-UX and AIX platforms Mikael Kjaer added to AUTHORS Conflicts: src/trie.cpp
This commit is contained in:
commit
0a1f7e3524
2
AUTHORS
2
AUTHORS
@ -5,6 +5,7 @@ Alexej Lotz <alexej.lotz@arcor.de>
|
||||
Asko Kauppi <askok@dnainternet.net>
|
||||
Barak Amar <barak.amar@gmail.com>
|
||||
Bernd Prager <bernd@prager.ws>
|
||||
Bernd Melchers <melchers@ZEDAT.FU-Berlin.DE>
|
||||
Brian Buchanan <bwb@holo.org>
|
||||
Chris Wong <chris@chriswongstudio.com>
|
||||
Conrad D. Steenberg <conrad.steenberg@caltech.edu>
|
||||
@ -25,6 +26,7 @@ Martin Lucina <mato@kotelna.sk>
|
||||
Martin Sustrik <sustrik@250bpm.com>
|
||||
Matus Hamorsky <mhamorsky@gmail.com>
|
||||
McClain Looney <m@loonsoft.com>
|
||||
Mikael Helbo Kjaer <mhk@designtech.dk>
|
||||
Pavel Gushcha <pavimus@gmail.com>
|
||||
Pavol Malosek <malosek@fastmq.com>
|
||||
Pieter Hintjens <ph@imatix.com>
|
||||
|
@ -184,7 +184,7 @@ void zmq::signaler_t::send (const command_t &cmd_)
|
||||
zmq_assert (nbytes == sizeof (command_t));
|
||||
}
|
||||
|
||||
bool zmq::signaler_t::recv (command_t &cmd_, bool block_)
|
||||
bool zmq::signaler_t::recv (command_t *cmd_, bool block_)
|
||||
{
|
||||
if (block_) {
|
||||
|
||||
@ -199,7 +199,7 @@ bool zmq::signaler_t::recv (command_t &cmd_, bool block_)
|
||||
bool result;
|
||||
ssize_t nbytes;
|
||||
do {
|
||||
nbytes = ::recv (r, buffer, sizeof (command_t), 0);
|
||||
nbytes = ::recv (r, (char*) cmd_, sizeof (command_t), 0);
|
||||
} while (nbytes == -1 && errno == EINTR);
|
||||
if (nbytes == -1 && errno == EAGAIN) {
|
||||
result = false;
|
||||
@ -213,7 +213,7 @@ bool zmq::signaler_t::recv (command_t &cmd_, bool block_)
|
||||
result = true;
|
||||
}
|
||||
|
||||
if (block_)
|
||||
if (block_) {
|
||||
|
||||
// Set the reader to non-blocking mode.
|
||||
int flags = fcntl (r, F_GETFL, 0);
|
||||
|
12
src/trie.cpp
12
src/trie.cpp
@ -42,7 +42,7 @@ zmq::trie_t::~trie_t ()
|
||||
if (count == 1)
|
||||
delete next.node;
|
||||
else if (count > 1) {
|
||||
for (unsigned char i = 0; i != count; ++i)
|
||||
for (unsigned short i = 0; i != count; ++i)
|
||||
if (next.table [i])
|
||||
delete next.table [i];
|
||||
free (next.table);
|
||||
@ -74,7 +74,7 @@ void zmq::trie_t::add (unsigned char *prefix_, size_t size_)
|
||||
next.table = (trie_t**)
|
||||
malloc (sizeof (trie_t*) * count);
|
||||
zmq_assert (next.table);
|
||||
for (unsigned char i = 0; i != count; ++i)
|
||||
for (unsigned short i = 0; i != count; ++i)
|
||||
next.table [i] = 0;
|
||||
min = std::min (min, c);
|
||||
next.table [oldc - min] = oldp;
|
||||
@ -82,25 +82,25 @@ void zmq::trie_t::add (unsigned char *prefix_, size_t size_)
|
||||
else if (min < c) {
|
||||
|
||||
// The new character is above the current character range.
|
||||
unsigned char old_count = count;
|
||||
unsigned short old_count = count;
|
||||
count = c - min + 1;
|
||||
next.table = (trie_t**) realloc ((void*) next.table,
|
||||
sizeof (trie_t*) * count);
|
||||
zmq_assert (next.table);
|
||||
for (unsigned char i = old_count; i != count; i++)
|
||||
for (unsigned short i = old_count; i != count; i++)
|
||||
next.table [i] = NULL;
|
||||
}
|
||||
else {
|
||||
|
||||
// The new character is below the current character range.
|
||||
unsigned char old_count = count;
|
||||
unsigned short old_count = count;
|
||||
count = (min + old_count) - c;
|
||||
next.table = (trie_t**) realloc ((void*) next.table,
|
||||
sizeof (trie_t*) * count);
|
||||
zmq_assert (next.table);
|
||||
memmove (next.table + min - c, next.table,
|
||||
old_count * sizeof (trie_t*));
|
||||
for (unsigned char i = 0; i != min - c; i++)
|
||||
for (unsigned short i = 0; i != min - c; i++)
|
||||
next.table [i] = NULL;
|
||||
min = c;
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ namespace zmq
|
||||
|
||||
uint32_t refcnt;
|
||||
unsigned char min;
|
||||
unsigned char count;
|
||||
unsigned short count;
|
||||
union {
|
||||
class trie_t *node;
|
||||
class trie_t **table;
|
||||
|
Loading…
x
Reference in New Issue
Block a user