On 2020/03/22 3:49, Waiman Long wrote:
+ do {
+ if (ret > key_data_len) {
+ if (unlikely(key_data))
+ __kvzfree(key_data, key_data_len);
+ key_data_len = ret;
+ continue; /* Allocate buffer */
Excuse me, but "continue;" inside "do { ... } while (0);" means "break;"
because "while (0)" is evaluated before continuing the loop.
----------
#include <stdio.h>
int main(int argc, char *argv[])
{
do {
printf("step 1\n");
if (1) {
printf("step 2\n");
continue;
}
printf("step 3\n");
} while (0);
printf("step 4\n");
return 0;
}
----------
----------
step 1
step 2
step 4
----------
+ }
+ } while (0);