xml parser로 expat을 사용하고 있습니다.
XML_SetUserData( Parser, UserDataPtr );
XML_SetElementHandler( Parser, ... );
...
XML_Parse( Parser, Buffer, Length, 0 );
이런 식으로 사용하고 있는데요...
XML_Parse가 호출되어 XML_SetElementHandler() 로 등록된 callback 이 호출되는데, 이 callback 함수 내부에서, 다시 XML_SetUserData()를 호출하는 경우에 UserData가 제대로 setting되지 않더군요.
지금 제 상황에서는 위의 방식처럼 element Handler 함수 내부에서 XML_SetUserData()를 호출하여 UserData pointer를 변경하거나, 아니면 element Handler 함수 내부에서 xml parsing을 중단하는 방법이 있거나... 이런 상황입니다.