매일 피곤한 상태에서 개발하다보니 어이없는 버그가 있었습니다.
복붙을 했었는데 변수 이름을 변경하다가 말아서 그게 버그의 간접적 원인이 되었습니다.
변수 하이라이팅 기능이 있었다면 피할 수 있었던 버그인데 말입니다.
그래서 개발 툴로 geany 를 사용했었는데 gnome-builder 로 바꾸기로 결정했습니다.
전에 firefox 실행해 놓은 상태에서
killall nimf
nimf --start-indicator
nimf 를 두세번 죽였다 살렸다 하면 firefox 가 죽는 현상이 있었습니다.
이것은 nimf 버그로 밝혀졌는데, 애석하게도 저는 왜 저런 현상이 발생하는지 아직도 이해를 못하고 있습니다.
아마, 응용 어플에서 또다른 디스패쳐가 작동해서 이런 문제가 발생하지 않았을까 추정하고 있습니다.
그래서, 글로벌 변수를 g_object_unref() 한 후, NULL 을 대입했습니다.
그 후 또다시 이러한 현상이 발생하면 thread-safe 스레드에 안전하게 설계해야 합니다.
g_weak_ref_init ()
void
g_weak_ref_init (GWeakRef *weak_ref,
gpointer object);
Initialise a non-statically-allocated GWeakRef.
This function also calls g_weak_ref_set() with object on the freshly-initialised weak reference.
This function should always be matched with a call to g_weak_ref_clear(). It is not necessary to use this function for a GWeakRef in static storage because it will already be properly initialised. Just use g_weak_ref_set() directly.
GWeakRef 를 이용하면 g_object_unref() 로 객체가 ref count 가 0 이 되었을 때, 아마 NULL 값을 대입해 줄 겁니다.
정확한 사용법을 몰라서 아직 사용하지 않을 뿐입니다. 때가 되면 하겠죠.ㅋㅋ
이렇게 점점 시간이 흐르다보면 nimf 는 매우 견고한 입력기가 되어 있을 것입니다.
오늘도 열심히 달립니다.
10여 년간 한글 문제 해결도 못하고 있는데 오픈소스 이 딴거 개나 줘버리라고 하세요. 오픈소스 개발자님, 관계자님 제가 하는 일에 제발 신경 끄세요. 도움 주지 마세요. 시간 빼앗겨 방해만 됩니다.
Translate
피드 구독하기:
댓글 (Atom)
응용 어플 끝글자 버그 잡는 거 진짜 개쉽습니다
그 동안 제가 끝글자 버그를 잡지 않고 방치한 이유 우선 책임, 의무가 없습니다. 제가 해당 어플 개발자도 아닐 뿐더러 오픈소스가 원래가 유지보수 의무, 보증 책임이 없습니다 . 이렇게 개떡 같은 게 오픈소스입니다. 전 과거 libhwp 하냐고...
-
인터넷에서 웹 브라우저로 파일을 받으면 서버 측의 잘못된 설정으로 인하여 한글 파일 이름이 이상하게 되는 경우가 많다. cp949 코드가 utf-8 로 둔갑된 경우 사용자 컴퓨터 환경이 utf-8 환경이라면 그 파일 이름 자체가 utf-8 이기 ...
-
예전에 dasom 개발하면서 많은 글을 작성했었는데 당시 drupal 로 홈페이지를 사용했었는데 drupal 관리를 못해서 데이터를 다 날려먹었습니다. 복구가 안 되요. 그래서 그 때부터 그냥 블로거에 글쓰고 있는 겁니다. 블로거는 구글에서 관리를 하...
-
그 동안 제가 끝글자 버그를 잡지 않고 방치한 이유 우선 책임, 의무가 없습니다. 제가 해당 어플 개발자도 아닐 뿐더러 오픈소스가 원래가 유지보수 의무, 보증 책임이 없습니다 . 이렇게 개떡 같은 게 오픈소스입니다. 전 과거 libhwp 하냐고...
댓글 없음:
댓글 쓰기