| Summary: | Definition of TpCallStream::local-sending-state-changed is wrong | ||
|---|---|---|---|
| Product: | Telepathy | Reporter: | Owen Taylor <otaylor> |
| Component: | tp-glib | Assignee: | Telepathy bugs list <telepathy-bugs> |
| Status: | RESOLVED FIXED | QA Contact: | Telepathy bugs list <telepathy-bugs> |
| Severity: | normal | ||
| Priority: | medium | CC: | tomeu, xclaesse |
| Version: | unspecified | Keywords: | patch |
| Hardware: | Other | ||
| OS: | All | ||
| URL: | http://cgit.collabora.com/git/user/xclaesse/telepathy-glib.git/commit/?h=call-stream&id=8e6b3438e6ec8f94ad83786ea60d183f23c2a8fe | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
That seems wrong indeed, and that's like that since the beginning, my fault according to git blame. Fix: http://cgit.collabora.com/git/user/xclaesse/telepathy-glib.git/commit/?h=call-stream&id=8e6b3438e6ec8f94ad83786ea60d183f23c2a8fe Empathy never connects that signal, that's probably why it does not crash... or maybe it does crash, I've seen some empathy-call crashes... ++ Merged in master and telepathy-glib-0.20 branches. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
Currently unless you disable fatal warnings, the build of telepathy-glib fails because the docs for TpCallStream::local-sending-state-changed don't match the signal definition. It turns out that the signal definition itself is wrong: /** * TpCallStream::local-sending-state-changed: * @self: the #TpCallStream * @state: the new #TpSendingState * @reason: the #TpCallStateReason for the change * * The ::local-sending-state-changed signal is emitted whenever the * stream sending state changes. * * Since: 0.17.5 */ _signals[LOCAL_SENDING_STATE_CHANGED] = g_signal_new ("local-sending-state-changed", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 4, G_TYPE_UINT, G_TYPE_UINT, TP_TYPE_CALL_STATE_REASON, G_TYPE_HASH_TABLE); The docs have two parameters, the signal definition 4 parameters, and when emitted: g_signal_emit (self, _signals[LOCAL_SENDING_STATE_CHANGED], 0, self->priv->local_sending_state, r); 2 again. I'm surprised this isn't causing crashes - most likely this code never gets hit.