Re: The bug hunt continues: Bug found!



Just found the bug (I think so). Take a look at bonobo-skel.c line 5588:

-----------------------
void _ORBIT_skel_GNOME_ViewFrame_get_ui_handler(POA_GNOME_ViewFrame *
_ORBIT_servant, GIOPRecvBuffer *_ORBIT_recv_buffer, CORBA_Environment *ev,
GNOME_UIHandler (*_impl_get_ui_handler)(PortableServer_Servant _servant,
CORBA_Environment *ev))
{
GNOME_UIHandler _ORBIT_retval;
_ORBIT_retval = _impl_get_ui_handler(_ORBIT_servant, ev);
{ /* marshalling */
register GIOPSendBuffer *_ORBIT_send_buffer;
_ORBIT_send_buffer =
giop_send_reply_buffer_use(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer)->connection,
NULL, _ORBIT_recv_buffer->message.u.request.request_id, ev->_major);
if (ev->_major == CORBA_NO_EXCEPTION) {
ORBit_marshal_object(_ORBIT_send_buffer, _ORBIT_retval);
} else
ORBit_send_system_exception(_ORBIT_send_buffer, ev);
giop_send_buffer_write(_ORBIT_send_buffer);
giop_send_buffer_unuse(_ORBIT_send_buffer);

// This is the bug !?
if(ev->_major == CORBA_NO_EXCEPTION) CORBA_Object_release(_ORBIT_retval, ev);

}
}
--------------------

Why does it release the ORBIT_retval?

It works if you remove that line.







[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]