1
wwqgtxx 2014-08-01 17:40:45 +08:00 via Android 1
有可能是git merge导致的错误,有些时候git merge时会导致一些莫名其妙的错误
|
2
ChiangDi 2014-08-01 17:45:08 +08:00
这也行,真是惊呆了,他们不测试就提交的?
|
3
akfish 2014-08-01 17:46:04 +08:00
看下blame不就知道了
|
4
dorentus 2014-08-01 17:48:16 +08:00 1
编译错误一般来说不是人工检查的重点,大都是用自动化的系统来检查的吧,一般是异步的。
然后 Linux 项目并不使用 Github 的 Pull Request 功能: https://github.com/torvalds/linux/pull/17#issuecomment-5654674 |
5
akfish 2014-08-01 17:55:11 +08:00
|
6
akfish 2014-08-01 17:59:09 +08:00 3
其实我想吐槽的是这不是bug。。。。
list_for_each并不是函数调用,而是一个宏 https://github.com/torvalds/linux/blob/164c09978cebebd8b5fc198e9243777dbaecdfa0/drivers/staging/usbip/userspace/libsrc/list.h#L110 |
7
dorentus 2014-08-01 17:59:09 +08:00 1
仔细看了下,这 Pull Request 不对……
list_for_each 大概是个宏,用法类似 for 或者 foreach: 例如 https://github.com/torvalds/linux/blob/164c09978cebebd8b5fc198e9243777dbaecdfa0/drivers/usb/mon/mon_main.c: list_for_each (p, &mon_buses) { struct mon_bus *m1; m1 = list_entry(p, struct mon_bus, bus_link); m1->u_bus->monitored = 1; } Pull Request 里面的下一行明显有个锁进,所以只是类似单行 for 省略了大括号而已;加了分号之后,即使不会报错,语义也变了。 |
8
fo2w 2014-08-01 18:05:22 +08:00 1
从代码和conversation看这不是个bug, 而且是编的过的啊
这展开仅仅是个for循环而且下一行就是循环体snd_usbmidi_disconnect(midi); 还专门缩进了用来提醒! 就这么贸然加个分号, 让循环体怎么想..... |
9
limon 2014-08-01 19:00:17 +08:00
在c里xxx_for_each这种命名明显就是宏嘛。。。
|
10
snowonion OP 谢谢各位~
跟 C 语言不熟, 没想到宏这回事=.= 如果不是 #define list_for_each(pos, head) 而是 #define list_for_each(pos, head): 会不会有助于避免误解 ( ゚∀。) |