ㄌㄐ@你的水潤餅大使
@raagi
Mon, Nov 27, 2023 3:37 AM
Mon, Nov 27, 2023 3:37 AM
為什麼 double linked list 要這樣寫啊
還是這是 ring buffer
邏輯看起來不像啊
Abby@U†U
@abbychau
Mon, Nov 27, 2023 6:08 AM
it is a circular linked list (not ring buffer)
list->headFlag = FALSE;
list->prev = list->next = list;
ㄌㄐ@你的水潤餅大使
@raagi
Mon, Nov 27, 2023 6:12 AM
Abby@U†U
: 喔喔原來!!!!
ㄌㄐ@你的水潤餅大使
@raagi
Mon, Nov 27, 2023 6:12 AM
看懂邏輯了!!!
ㄌㄐ@你的水潤餅大使
@raagi
Mon, Nov 27, 2023 6:13 AM
可是他的 initiate 沒處理 head 的狀況欸,這沒問題嗎
還是這就是個問題
Abby@U†U
@abbychau
Mon, Nov 27, 2023 6:15 AM
日常ida 改錯var name 誤導自己www
Abby@U†U
@abbychau
Mon, Nov 27, 2023 6:16 AM
head 有head_init 吧
ㄌㄐ@你的水潤餅大使
@raagi
Mon, Nov 27, 2023 6:16 AM
Abby@U†U
: 而且他是 32-bit 更容易誤導(
pointer 跟 integer 都是 4 bytes 會分出來
ㄌㄐ@你的水潤餅大使
@raagi
Mon, Nov 27, 2023 6:17 AM
Abby@U†U
: 我這邊是沒看到,他 allocate 一個 instance 之後就直接進去這個 list_init 沒再做其他的 init
ㄌㄐ@你的水潤餅大使
@raagi
Mon, Nov 27, 2023 6:17 AM
* pointer 跟 integer 都是 4 bytes 會分不出來
Abby@U†U
@abbychau
Mon, Nov 27, 2023 6:18 AM
正常會有一個cg_list_header_init , 可能optimize 到其他地方去了
ㄌㄐ@你的水潤餅大使
@raagi
Mon, Nov 27, 2023 6:33 AM
Abby@U†U
: 喔喔真的欸我找到了!!感謝 abby
Abby@U†U
@abbychau
Mon, Nov 27, 2023 7:10 AM
ㄌㄐ@你的水潤餅大使
:
ㄌㄐ@你的水潤餅大使
@raagi
Mon, Nov 27, 2023 7:15 AM
不過剛剛去把 circular linked list 的資料讀了一下,修改成正確的變數名稱之後,反而 node 的邏輯怪怪的吧,這樣會永遠指不到 head ,尾巴跟前一個一直 circular
ㄌㄐ@你的水潤餅大使
@raagi
Mon, Nov 27, 2023 7:53 AM
喔沒事 insert 做在別的地方
ㄌㄐ@你的水潤餅大使
@raagi
Wed, Nov 29, 2023 8:59 AM
結果把這邊的結果改到 main code 上之後變得怪怪的
assembly 上做的是把 cg_http_server_new assign 到 0($v0) (也就是 struct->field0) 但這樣超怪我剛剛反覆檢查 filed0 是 head_flag 一定只有 0 或 1 不是 DWORD*
剛剛看還有一個 cg_http_server_list_new 也是 malloc 48 bytes ,有可能這裡拿到的是 list 而不是 node ,但原來的地方根本沒呼叫到這個 function 啊
我腦子現在像義大利麵
載入新的回覆
為什麼 double linked list 要這樣寫啊
還是這是 ring buffer
list->headFlag = FALSE;
list->prev = list->next = list;
還是這就是個問題pointer 跟 integer 都是 4 bytes 會分出來
不過剛剛去把 circular linked list 的資料讀了一下,修改成正確的變數名稱之後,反而 node 的邏輯怪怪的吧,這樣會永遠指不到 head ,尾巴跟前一個一直 circular
assembly 上做的是把 cg_http_server_new assign 到 0($v0) (也就是 struct->field0) 但這樣超怪我剛剛反覆檢查 filed0 是 head_flag 一定只有 0 或 1 不是 DWORD*
剛剛看還有一個 cg_http_server_list_new 也是 malloc 48 bytes ,有可能這裡拿到的是 list 而不是 node ,但原來的地方根本沒呼叫到這個 function 啊