it's 1615 edt and I'm still here.
my body feels pushed away from the work, an imaginary experience I often have. the word "imaginary" means that the physical things that are happening are firings of neurons in you. palsy can be "imaginary" if you have an abusive family member.
what I mean is that my experiences are so bad I have actual muscle contractions. still, the danger stimulating their sudden behavior is on a very neurological scale.
it's 1617 !
wake this computer up. bing.
k we were handling logical conditions
!ctx, dflt : short-circuited. see first if block in libusb_init, is exact map.
remaining:
!ctx, !dflt
ctx, dflt
ctx, !dflt
now we can go down to harbulot's block.
the first half of the or covers ctx, so that's 2/3
the second half covers !dflt, so it's an always-true condition.
1622
k so now every default option is passed to the context, it may be fine to remove the initial callback, unsure.
the difference will be that there is no null pointer, but rather a context. so this change would go best with my addition that moves the flag into context-local data.
the issue then is that these flags should only be set during initialisation. a way to check for that is whether or not the context has been added to the active list.
I think i'll check briefly to see whether a list entry can be queried for what lists it is in. libusb has an internal list structure used everywhere.
yes, actually! each list entry holds storage for its node in the linked list. so you can check without iterating and without additional data storage.
personally I think it's cool how c programmers find ways to use like 12 bytes of memory max to do absolutely everything, as a norm. if everybody did this our devices wouldn't just be _responsive_ they would be _faster than we can perceive_ in like everything they do. but most people aren't c programmers.
1627
is speed dangerous ?
1628
ok so the plan is to ..... rebuild my changes to option setting, using context-local data, and checking to make sure the setter is called from libusb_init, by checking the list entry's state in the active list.
it's zero-initalised with calloc so a non-zero check works.