2015-02-02 9 views
0
를 통해 수신 된 데이터와 g_variant_iter_loop 사용하는

내 스택 추적이어떻게 안전하게 DBUS

/usr/lib/libglib-2.0.so.0(g_variant_iter_loop+0xb4) 
/usr/lib/libglib-2.0.so.0(g_variant_get_int32+0x1c) 
/usr/lib/libglib-2.0.so.0(g_variant_type_is_subtype_of+0x3c) 

모양과의 코드 같은 것입니다 : 데이터가 DBUS를 통해 수신되는

while ((NULL != iterator) && (true == g_variant_iter_loop (iterator, "y", &extractedValue))) 
{ 
    // do something with extractedValue 
} 

가 GVariant를 사용하여 . 어쩌면 glib API를 제대로 사용하지 않고 있지만이 경우의 1 % 만 실패합니다. 내가 뭔가 잘못하고있는 것입니까, 아니면 뭔가 빠졌습니까?

하나의 요소가 예상된다
+0

를 사용하는 것이 더 좋습니다,하지만 문서 https://developer.gnome.org/glib/stable/glib -GVariant.html # g-variant-iter-loop는 "정수 및 문자열 유형"에 대해 g_variant_iter_next를 권장합니다. – alvaropg

답변

0

, 나는 당신이지고있는 오류 모르는

if(iter != NULL) { 
    g_variant_iter_next (iterator, "u", &value); 
}