- 22 Oct, 2019 1 commit
-
-
Kirill Smelkov authored
Currently bitmap type is defined via untagged struct which makes it impossible to forward declare it. Forward-declaring is useful since all bitmap functions only use bitmap* and in public user-visible headers/datastructures it is enough to indicate that a data field with bitmap pointer is there, whereas bitmap.h can be included only in implementation. Beside that some headers are included by both C and C++ parts of a project, and when ccan/bitmap.h is processed by C++ compiler it gives: ./3rdparty/ccan/ccan/bitmap/bitmap.h: In function ‘bitmap* bitmap_alloc(long unsigned int)’: ./3rdparty/ccan/ccan/bitmap/bitmap.h:201:15: error: invalid conversion from ‘void*’ to ‘bitmap*’ [-fpermissive] return malloc(bitmap_sizeof(nbits)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~ ./3rdparty/ccan/ccan/bitmap/bitmap.h: In function ‘bitmap* bitmap_realloc0(bitmap*, long unsigned int, long unsigned int)’: ./3rdparty/ccan/ccan/bitmap/bitmap.h:227:18: error: invalid conversion from ‘void*’ to ‘bitmap*’ [-fpermissive] bitmap = realloc(bitmap, bitmap_sizeof(nbits)); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./3rdparty/ccan/ccan/bitmap/bitmap.h: In function ‘bitmap* bitmap_realloc1(bitmap*, long unsigned int, long unsigned int)’: ./3rdparty/ccan/ccan/bitmap/bitmap.h:238:18: error: invalid conversion from ‘void*’ to ‘bitmap*’ [-fpermissive] bitmap = realloc(bitmap, bitmap_sizeof(nbits)); -> Give to users ability not to force-include ccan/bitmap.h by forward-declaring bitmaps like this: typedef struct bitmap bitmap; ... struct MyStruct { bitmap *my_bitmap; }; Cc: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Kirill Smelkov <kirr@nexedi.com> Message-Id: <20191021150903.25159-1-kirr@nexedi.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-
- 10 Oct, 2019 1 commit
-
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 04 Oct, 2019 1 commit
-
-
Rusty Russell authored
SEEK_SET == 0, so it's not hurting anyone now, but when I cut & paste it elsewhere... Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 14 Aug, 2019 1 commit
-
-
Rusty Russell authored
This is usually what you want; I didn't even add a flag to stop it. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 13 Aug, 2019 1 commit
-
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 01 Aug, 2019 1 commit
-
-
Chirimen-Jako authored
-
- 31 Jul, 2019 1 commit
-
-
Rusty Russell authored
Discovered on bionic's Travis install, it failed at *runtime* when it couldn't find the shared library. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 11 Jul, 2019 1 commit
-
-
David Gibson authored
The bitmap_word type is an unsigned long. However in some places we assign it using -1ULL, a 64-bit value on many platforms. We sometimes get away with this because it masks correctly, but in other cases it breaks things. To clean this up define a new BITMAP_WORD_1 constant, indicating a bitmap_word with all bits set, and use that instead of explicit UL or ULL qualifiers. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-
- 11 Jun, 2019 4 commits
-
-
Rusty Russell authored
I copied them from the kernel, but obviously didn't find good test vectors. In particular, the CRC of all zeroes is not 0! Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
Note: the previous code in ccan/crc is wrong, so I started fresh with actual test vectors. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 23 May, 2019 1 commit
-
-
Rusty Russell authored
And fix escaping to work with addstr(), and assert in debug mode if they don't specify quotes. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 22 May, 2019 1 commit
-
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 21 May, 2019 2 commits
-
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 02 Apr, 2019 1 commit
-
-
Rusty Russell authored
Final results of tools/speed/10000000 (10 runs) shows a slight slowdown in some tests, but it makes an empty htable smaller. -Initial delete all: 96-98(96.4+/-0.66) ns +Initial delete all: 97-99(98.2+/-0.75) ns -Initial re-inserting: 117-124(121.4+/-1.9) ns +Initial re-inserting: 124-131(126.4+/-2.4) ns -Adding (a different) half: 49-50(49.3+/-0.46) ns +Adding (a different) half: 50-52(51.2+/-0.75) ns Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 01 Apr, 2019 2 commits
-
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 16 Mar, 2019 3 commits
-
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
Free the internal "always" array like we free "fds". Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
Suggested-by: Lisa Neigut <@niftynei> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 04 Mar, 2019 5 commits
-
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
malloc and free aren't for everyone. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
There are cases where we want to suppress all activity except for a single fd; we already have ugly io_flush_sync, but this is more useful and more general. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 28 Feb, 2019 3 commits
-
-
Rusty Russell authored
We could just make them -1, since we don't rely on the values. But simple negation doesn't make 0 invalid. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
Duplex io_conns can be in the always list twice, and it was a source of bugs, but I didn't want to add a second list_node. Since there are not many always at once, it's better (and more space-efficient) to use a simple pointer array. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
io_conn contains two plans: by knowing what plan this is, it can be cast back into the io_conn. That helps for the next patch. We also remove the strange logic where io_duplex() would return a magic, invalid io_plan pointer. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 13 Feb, 2019 1 commit
-
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 07 Feb, 2019 1 commit
-
-
Rusty Russell authored
This was reported and fixed by @m-schmoock for stderr, but I decided to rework to make it clearer and cover the other cases: https://github.com/ElementsProject/lightning/pull/2321/commits/67dad01549f876e5e620eeffe2f1e78c35bd0f03Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 05 Feb, 2019 1 commit
-
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 17 Dec, 2018 1 commit
-
-
Rusty Russell authored
take() applies to the literal pointer value, so tal_free() means it may randomly apply to a future allocation. Similarly, tal_resize() should preserve it. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 12 Nov, 2018 1 commit
-
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 05 Nov, 2018 1 commit
-
-
Dmitry Petukhov authored
Hello. I've decided to take a look at c-lighting code, because we might consider using it in the future. I found a small problem in ccan/take/take.c that only concerns code that runs with CCAN_TAKE_DEBUG set (DEVELOPER=1 for c-lighting). It is a small issue, but I decided to notify you as the author of the code, anyway. the issue is: in take_() function, potential failure of realloc for labelarr is not handled. I attached a diff with a fix. I thought that making a pull request for c-lighting would not be right, as ccan is a separate project, but I did not find a way to report this at http://git.ozlabs.org/, where ccan repo resides. Therefore I wrote to you directly. [ Minor whitespace changes --RR ]
-
- 02 Nov, 2018 2 commits
-
-
Rusty Russell authored
If we have plugins, and those can register args, we have a problem finding the plugin dir! So, do a best-effort incomplete parse. Note that this can screw up in theory if we have "--unknown --foo" since we don't know if unknown takes an argument (in which case, ignore --foo) or not. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
Rusty Russell authored
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 18 Oct, 2018 1 commit
-
-
Rusty Russell authored
It's used inside io_finish; setting to 0 allows that to know we hit EOF on a read. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-
- 12 Oct, 2018 1 commit
-
-
Rusty Russell authored
Trying to debug what looked like an htable fail in my own code (but seems it's not), I added htable_check a-la list_check et al. This means we now depend on ccan/str (for stringify), which breaks the _info example which also defined streq, and played nasty with const pointers. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-