On 2011-07-07 13:23, David Henningsson wrote:
diff --git a/src/pulse/introspect.h b/src/pulse/introspect.h
index 8e4cc97..259c57b 100644
--- a/src/pulse/introspect.h
+++ b/src/pulse/introspect.h
@@ -452,6 +452,10 @@ typedef struct pa_card_profile_info {
      uint32_t n_sinks;                   /**<  Number of sinks this profile 
would create */
      uint32_t n_sources;                 /**<  Number of sources this profile 
would create */
      uint32_t priority;                  /**<  The higher this value is the 
more useful this profile is as a default */
+    uint32_t n_sink_ports;              /**<  Number of entries in sink_ports 
array \since MERGE_OF_JACK_DETECTION */
+    pa_sink_port_info** sink_ports;     /**<  Array of available output ports, 
or NULL. Array is terminated by an entry set to NULL. The number of entries is 
stored in n_sink_ports. \since MERGE_OF_JACK_DETECTION */
+    uint32_t n_source_ports;            /**<  Number of entries in 
source_ports array \since MERGE_OF_JACK_DETECTION */
+    pa_source_port_info** source_ports; /**<  Array of available input ports, 
or NULL. Array is terminated by an entry set to NULL. The number of entries is 
stored in n_source_ports. \since MERGE_OF_JACK_DETECTION */
  } pa_card_profile_info;

I think I figured out why the addition above breaks the ABI: It's because pa_card_info has a pointer to an array of these objects, with the following comment:

pa_card_profile_info* profiles; /**< Array of available profile, or NULL. Array is terminated by an entry with name set to NULL. Number of entries is stored in n_profiles */

Which means the client has to rely on sizeof(pa_card_profile_info) to know the address of the second (and third, and so on) array entry. As sizeof(pa_card_profile_info) is changed, recompilation of clients is necessary.

:-(

Any good ideas as of how to avoid it?

--
David Henningsson
http://launchpad.net/~diwic
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to