From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <3SursXggKCs81AC9x3yv19916z.x9763wvw31v36D9FCxzHvCz.9C1@flex--gprocida.bounces.google.com> Received: from mail-qt1-x84a.google.com (mail-qt1-x84a.google.com [IPv6:2607:f8b0:4864:20::84a]) by sourceware.org (Postfix) with ESMTPS id 282463840C2C for ; Fri, 19 Jun 2020 16:39:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 282463840C2C Received: by mail-qt1-x84a.google.com with SMTP id u48so7527451qth.17 for ; Fri, 19 Jun 2020 09:39:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc:content-transfer-encoding; bh=klKphYfKT5iyqqiqGslekMK2ZgBAXfxam9cprU+5VtY=; b=lreUbC/x/CktoQZguef+MuOeH+D/FP88VYo1Ywh4X0HKVKJWrAdNdc93UApLxwdi+E 1r2EfHUEEM5OdigSN44ozUVbsFkUpKPYtU3nCge/CjHdBI+rPKEnlTz9dFhAuu3hCUW6 VEKyvA7T6MrDVaJOkhubZPB74NZj1XEqbxFzRCtZQkZUp8TbXDTX0rLtzKkKYVVVHqfq ZM7cqwca0Z/1Xf7+Fv7fn4u5+JTJj56Bie27OfAtcnOKLYy5xNyZRkX11zN+CM9E6Dma xz5FXpyoCUWjI66HTzydiMgd4ClkglNIprcHKxRPexo9ZqPCSZ7n2bQvTys1rzpqO0aK 4mJw== X-Gm-Message-State: AOAM532i9CYK7BoQOfrNBpRPhV5go1AEINw+/FdkAaLtAP7My45U3Q03 1U8V145XNR/gpjVc6zFpim8qWjGM8zpBAdDv0QTxsaSybD6+zjWpmzGPU74a7PEIDcFmw7XqKKN jG5Z8CEqrH2/x2zpJkV3qh0r2OkyYy4qP1CuUmgb5dzCpQLGT4oe5/T6b3tkUm6oeCyR9A9Q= X-Google-Smtp-Source: ABdhPJzyn3veAyeb2b7SfAbm1lAlzbBeEruKatLCmDR1+Wln2npCCKJCsmIC/4v2XNvBA2Tfe9wbYZfUilkYZw== X-Received: by 2002:a0c:f888:: with SMTP id u8mr9495683qvn.130.1592584778523; Fri, 19 Jun 2020 09:39:38 -0700 (PDT) Date: Fri, 19 Jun 2020 17:39:24 +0100 In-Reply-To: <20200619163924.207852-1-gprocida@google.com> Message-Id: <20200619163924.207852-3-gprocida@google.com> Mime-Version: 1.0 References: <20200619163924.207852-1-gprocida@google.com> X-Mailer: git-send-email 2.27.0.111.gc72c7da667-goog Subject: [PATCH 2/2] Use pointers not strings in type graph comparison. From: Giuliano Procida To: libabigail@sourceware.org Cc: dodji@seketeli.org, kernel-team@android.com, gprocida@google.com, maennich@google.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-23.2 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Jun 2020 16:39:47 -0000 During structural comparison of types there is the possibilitiy of infinite recursion as types can have self-references and there can be more elaborate mutual references between them. The current comparison algorithm keeps track of currently seen (struct and function) types by name. This causes earlier caching of names than is needed and, more significantly, may result in types comparing equal unexpectedly. This commit switches to storing their addresses instead. This change affects some tests which show more diffs than previously. src/abg-ir.cc: (environment::priv): Change types of classes_being_compared_ and fn_types_being_compared_ to be simple sets of pointers. (function_type::priv::mark_as_being_compared): Just add address to set. (function_type::priv::unmark_as_being_compared): Just remove address from set. (function_type::priv::comparison_started): Just look up address in set. (class_or_union::priv::mark_as_being_compared): Just add address to set. (class_or_union::priv::unmark_as_being_compared): Just remove address from set. (class_or_union::priv::comparison_started): Just look up address in set. * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt: Update. * tests/data/test-diff-pkg/elfutils-libs-0.170-4.el7.x86_64-multiple-sym-v= ers-report-0.txt: Update. * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.= x86_64-report-2.txt: Update. * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.= x86_64-report-3.txt: Update. Signed-off-by: Giuliano Procida --- src/abg-ir.cc | 21 +- .../PR25058-liblttng-ctl-report-1.txt | 239 +++++- ....el7.x86_64-multiple-sym-vers-report-0.txt | 2 +- ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 734 ++++++++++++------ ...l7.x86_64-0.12.8-1.el7.x86_64-report-3.txt | 162 +++- 5 files changed, 909 insertions(+), 249 deletions(-) diff --git a/src/abg-ir.cc b/src/abg-ir.cc index c6712a83..0f30e862 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -2635,8 +2635,8 @@ struct environment::priv mutable vector sorted_canonical_types_; type_base_sptr void_type_; type_base_sptr variadic_marker_type_; - interned_string_set_type classes_being_compared_; - interned_string_set_type fn_types_being_compared_; + unordered_set classes_being_compared_; + unordered_set fn_types_being_compared_; vector extra_live_types_; interned_string_pool string_pool_; bool canonicalization_is_done_; @@ -16224,8 +16224,7 @@ struct function_type::priv { const environment* env =3D type.get_environment(); ABG_ASSERT(env); - interned_string fn_type_name =3D type.get_cached_name(/*internal=3D*/t= rue); - env->priv_->fn_types_being_compared_.insert(fn_type_name); + env->priv_->fn_types_being_compared_.insert(&type); } =20 /// If a given @ref function_type was marked as being compared, this @@ -16238,8 +16237,7 @@ struct function_type::priv { const environment* env =3D type.get_environment(); ABG_ASSERT(env); - interned_string fn_type_name =3D type.get_cached_name(/*internal=3D*/t= rue); - env->priv_->fn_types_being_compared_.erase(fn_type_name); + env->priv_->fn_types_being_compared_.erase(&type); } =20 /// Tests if a @ref function_type is currently being compared. @@ -16252,9 +16250,7 @@ struct function_type::priv { const environment* env =3D type.get_environment(); ABG_ASSERT(env); - interned_string fn_type_name =3D type.get_cached_name(/*internal=3D*/t= rue); - interned_string_set_type& c =3D env->priv_->fn_types_being_compared_; - return (c.find(fn_type_name) !=3D c.end()); + return env->priv_->fn_types_being_compared_.count(&type); } };// end struc function_type::priv =20 @@ -18041,7 +18037,7 @@ struct class_or_union::priv { const environment* env =3D klass.get_environment(); ABG_ASSERT(env); - env->priv_->classes_being_compared_.insert(klass.get_qualified_name())= ; + env->priv_->classes_being_compared_.insert(&klass); } =20 /// Mark a class or union as being currently compared using the @@ -18089,7 +18085,7 @@ struct class_or_union::priv { const environment* env =3D klass.get_environment(); ABG_ASSERT(env); - env->priv_->classes_being_compared_.erase(klass.get_qualified_name()); + env->priv_->classes_being_compared_.erase(&klass); } =20 /// If the instance of class_or_union has been previously marked as @@ -18115,8 +18111,7 @@ struct class_or_union::priv { const environment* env =3D klass.get_environment(); ABG_ASSERT(env); - interned_string_set_type& c =3D env->priv_->classes_being_compared_; - return (c.find(klass.get_qualified_name()) !=3D c.end()); + return env->priv_->classes_being_compared_.count(&klass); } =20 /// Test if a given instance of class_or_union is being currently diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b= /tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt index 44ddc6d6..dc1dff32 100644 --- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt +++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt @@ -1,4 +1,4 @@ -Functions changes summary: 0 Removed, 25 Changed, 79 Added functions +Functions changes summary: 0 Removed, 50 Changed, 79 Added functions Variables changes summary: 0 Removed, 0 Changed, 3 Added variables =20 79 Added functions: @@ -83,7 +83,39 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added= variables [A] 'function const char* lttng_userspace_probe_location_tracepoint_get_= probe_name(const lttng_userspace_probe_location*)' [A] 'function const char* lttng_userspace_probe_location_tracepoint_get_= provider_name(const lttng_userspace_probe_location*)' =20 -25 functions with some indirect sub-type change: +50 functions with some indirect sub-type change: + + [C] 'function void lttng_action_destroy(lttng_action*)' has some indirec= t sub-type changes: + parameter 1 of type 'lttng_action*' has sub-type changes: + in pointed to type 'struct lttng_action': + type size hasn't changed + 2 data member changes: + type of 'action_serialize_cb lttng_action::serialize' changed: + underlying type 'typedef ssize_t (lttng_action*, char*)*' chan= ged: + in pointed to type 'function type typedef ssize_t (lttng_act= ion*, char*)': + return type changed: + entity changed from 'typedef ssize_t' to compatible type= 'int' + type name changed from 'long int' to 'int' + type size changed from 64 to 32 (in bits) + parameter 1 of type 'lttng_action*' has sub-type changes: + pointed to type 'struct lttng_action' changed, as being = reported + parameter 2 of type 'char*' changed: + in pointed to type 'char': + entity changed from 'char' to 'struct lttng_dynamic_bu= ffer' + type size changed from 8 to 192 (in bits) + type of 'action_destroy_cb lttng_action::destroy' changed: + underlying type 'void (lttng_action*)*' changed: + in pointed to type 'function type void (lttng_action*)': + parameter 1 of type 'lttng_action*' has sub-type changes: + pointed to type 'struct lttng_action' changed, as being = reported + + [C] 'function lttng_action_type lttng_action_get_type(lttng_action*)' ha= s some indirect sub-type changes: + parameter 1 of type 'lttng_action*' has sub-type changes: + pointed to type 'struct lttng_action' changed, as reported earlier + + [C] 'function lttng_action* lttng_action_notify_create()' has some indir= ect sub-type changes: + return type changed: + pointed to type 'struct lttng_action' changed, as reported earlier =20 [C] 'function int lttng_add_context(lttng_handle*, lttng_event_context*,= const char*, const char*)' has some indirect sub-type changes: parameter 2 of type 'lttng_event_context*' has sub-type changes: @@ -107,13 +139,111 @@ Variables changes summary: 0 Removed, 0 Changed, 3 A= dded variables to: union {lttng_event_perf_counter_ctx perf_counter; struct {ch= ar* provider_name; char* ctx_name;} app_ctx; char padding[288];} =20 + [C] 'function lttng_condition_status lttng_condition_buffer_usage_get_ch= annel_name(const lttng_condition*, const char**)' has some indirect sub-typ= e changes: + parameter 1 of type 'const lttng_condition*' has sub-type changes: + in pointed to type 'const lttng_condition': + in unqualified underlying type 'struct lttng_condition': + type size hasn't changed + 5 data member changes: + type of 'lttng_condition_type lttng_condition::type' changed: + type size hasn't changed + 3 enumerator insertions: + 'lttng_condition_type::LTTNG_CONDITION_TYPE_SESSION_CONSUM= ED_SIZE' value '100' + 'lttng_condition_type::LTTNG_CONDITION_TYPE_SESSION_ROTATI= ON_ONGOING' value '103' + 'lttng_condition_type::LTTNG_CONDITION_TYPE_SESSION_ROTATI= ON_COMPLETED' value '104' + type of 'condition_validate_cb lttng_condition::validate' chan= ged: + underlying type 'bool (const lttng_condition*)*' changed: + in pointed to type 'function type bool (const lttng_condit= ion*)': + parameter 1 of type 'const lttng_condition*' has sub-typ= e changes: + in pointed to type 'const lttng_condition': + unqualified underlying type 'struct lttng_condition'= changed, as being reported + type of 'condition_serialize_cb lttng_condition::serialize' ch= anged: + underlying type 'typedef ssize_t (const lttng_condition*, ch= ar*)*' changed: + in pointed to type 'function type typedef ssize_t (const l= ttng_condition*, char*)': + return type changed: + entity changed from 'typedef ssize_t' to compatible ty= pe 'int' + type name changed from 'long int' to 'int' + type size changed from 64 to 32 (in bits) + parameter 1 of type 'const lttng_condition*' has sub-typ= e changes: + in pointed to type 'const lttng_condition': + unqualified underlying type 'struct lttng_condition'= changed, as being reported + parameter 2 of type 'char*' changed: + in pointed to type 'char': + entity changed from 'char' to 'struct lttng_dynamic_= buffer' + type size changed from 8 to 192 (in bits) + type of 'condition_equal_cb lttng_condition::equal' changed: + underlying type 'bool (const lttng_condition*, const lttng_c= ondition*)*' changed: + in pointed to type 'function type bool (const lttng_condit= ion*, const lttng_condition*)': + parameter 1 of type 'const lttng_condition*' has sub-typ= e changes: + in pointed to type 'const lttng_condition': + unqualified underlying type 'struct lttng_condition'= changed, as being reported + parameter 2 of type 'const lttng_condition*' has sub-typ= e changes: + in pointed to type 'const lttng_condition': + unqualified underlying type 'struct lttng_condition'= changed, as being reported + type of 'condition_destroy_cb lttng_condition::destroy' change= d: + underlying type 'void (lttng_condition*)*' changed: + in pointed to type 'function type void (lttng_condition*)'= : + parameter 1 of type 'lttng_condition*' has sub-type chan= ges: + pointed to type 'struct lttng_condition' changed, as b= eing reported + + [C] 'function lttng_condition_status lttng_condition_buffer_usage_get_do= main_type(const lttng_condition*, lttng_domain_type*)' has some indirect su= b-type changes: + parameter 1 of type 'const lttng_condition*' has sub-type changes: + in pointed to type 'const lttng_condition': + unqualified underlying type 'struct lttng_condition' changed, as r= eported earlier + + [C] 'function lttng_condition_status lttng_condition_buffer_usage_get_se= ssion_name(const lttng_condition*, const char**)' has some indirect sub-typ= e changes: + parameter 1 of type 'const lttng_condition*' has sub-type changes: + in pointed to type 'const lttng_condition': + unqualified underlying type 'struct lttng_condition' changed, as r= eported earlier + + [C] 'function lttng_condition_status lttng_condition_buffer_usage_get_th= reshold(const lttng_condition*, uint64_t*)' has some indirect sub-type chan= ges: + parameter 1 of type 'const lttng_condition*' has sub-type changes: + in pointed to type 'const lttng_condition': + unqualified underlying type 'struct lttng_condition' changed, as r= eported earlier + + [C] 'function lttng_condition_status lttng_condition_buffer_usage_get_th= reshold_ratio(const lttng_condition*, double*)' has some indirect sub-type = changes: + parameter 1 of type 'const lttng_condition*' has sub-type changes: + in pointed to type 'const lttng_condition': + unqualified underlying type 'struct lttng_condition' changed, as r= eported earlier + + [C] 'function lttng_condition* lttng_condition_buffer_usage_high_create(= )' has some indirect sub-type changes: + return type changed: + pointed to type 'struct lttng_condition' changed, as reported earlie= r + + [C] 'function lttng_condition* lttng_condition_buffer_usage_low_create()= ' has some indirect sub-type changes: + return type changed: + pointed to type 'struct lttng_condition' changed, as reported earlie= r + + [C] 'function lttng_condition_status lttng_condition_buffer_usage_set_ch= annel_name(lttng_condition*, const char*)' has some indirect sub-type chang= es: + parameter 1 of type 'lttng_condition*' has sub-type changes: + pointed to type 'struct lttng_condition' changed, as reported earlie= r + + [C] 'function lttng_condition_status lttng_condition_buffer_usage_set_do= main_type(lttng_condition*, lttng_domain_type)' has some indirect sub-type = changes: + parameter 1 of type 'lttng_condition*' has sub-type changes: + pointed to type 'struct lttng_condition' changed, as reported earlie= r + + [C] 'function lttng_condition_status lttng_condition_buffer_usage_set_se= ssion_name(lttng_condition*, const char*)' has some indirect sub-type chang= es: + parameter 1 of type 'lttng_condition*' has sub-type changes: + pointed to type 'struct lttng_condition' changed, as reported earlie= r + + [C] 'function lttng_condition_status lttng_condition_buffer_usage_set_th= reshold(lttng_condition*, uint64_t)' has some indirect sub-type changes: + parameter 1 of type 'lttng_condition*' has sub-type changes: + pointed to type 'struct lttng_condition' changed, as reported earlie= r + + [C] 'function lttng_condition_status lttng_condition_buffer_usage_set_th= reshold_ratio(lttng_condition*, double)' has some indirect sub-type changes= : + parameter 1 of type 'lttng_condition*' has sub-type changes: + pointed to type 'struct lttng_condition' changed, as reported earlie= r + + [C] 'function void lttng_condition_destroy(lttng_condition*)' has some i= ndirect sub-type changes: + parameter 1 of type 'lttng_condition*' has sub-type changes: + pointed to type 'struct lttng_condition' changed, as reported earlie= r + [C] 'function lttng_condition_type lttng_condition_get_type(const lttng_= condition*)' has some indirect sub-type changes: return type changed: - type size hasn't changed - 3 enumerator insertions: - 'lttng_condition_type::LTTNG_CONDITION_TYPE_SESSION_CONSUMED_SIZE'= value '100' - 'lttng_condition_type::LTTNG_CONDITION_TYPE_SESSION_ROTATION_ONGOI= NG' value '103' - 'lttng_condition_type::LTTNG_CONDITION_TYPE_SESSION_ROTATION_COMPL= ETED' value '104' + enum type 'enum lttng_condition_type' changed, as reported earlier + parameter 1 of type 'const lttng_condition*' has sub-type changes: + in pointed to type 'const lttng_condition': + unqualified underlying type 'struct lttng_condition' changed, as r= eported earlier =20 [C] 'function int lttng_disable_event_ext(lttng_handle*, lttng_event*, c= onst char*, const char*)' has some indirect sub-type changes: parameter 2 of type 'lttng_event*' has sub-type changes: @@ -137,9 +267,49 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Add= ed variables parameter 2 of type 'lttng_event*' has sub-type changes: pointed to type 'struct lttng_event' changed, as reported earlier =20 + [C] 'function lttng_evaluation_status lttng_evaluation_buffer_usage_get_= usage(const lttng_evaluation*, uint64_t*)' has some indirect sub-type chang= es: + parameter 1 of type 'const lttng_evaluation*' has sub-type changes: + in pointed to type 'const lttng_evaluation': + in unqualified underlying type 'struct lttng_evaluation': + type size hasn't changed + 3 data member changes: + type of 'lttng_condition_type lttng_evaluation::type' changed,= as reported earlier + type of 'evaluation_serialize_cb lttng_evaluation::serialize' = changed: + underlying type 'typedef ssize_t (lttng_evaluation*, char*)*= ' changed: + in pointed to type 'function type typedef ssize_t (lttng_e= valuation*, char*)': + return type changed: + entity changed from 'typedef ssize_t' to compatible ty= pe 'int' + type name changed from 'long int' to 'int' + type size changed from 64 to 32 (in bits) + parameter 1 of type 'lttng_evaluation*' changed: + in pointed to type 'struct lttng_evaluation': + entity changed from 'struct lttng_evaluation' to 'co= nst lttng_evaluation' + type size hasn't changed + parameter 2 of type 'char*' changed: + in pointed to type 'char': + entity changed from 'char' to 'struct lttng_dynamic_= buffer' + type size changed from 8 to 192 (in bits) + type of 'evaluation_destroy_cb lttng_evaluation::destroy' chan= ged: + underlying type 'void (lttng_evaluation*)*' changed: + in pointed to type 'function type void (lttng_evaluation*)= ': + parameter 1 of type 'lttng_evaluation*' has sub-type cha= nges: + pointed to type 'struct lttng_evaluation' changed, as = being reported + + [C] 'function lttng_evaluation_status lttng_evaluation_buffer_usage_get_= usage_ratio(const lttng_evaluation*, double*)' has some indirect sub-type c= hanges: + parameter 1 of type 'const lttng_evaluation*' has sub-type changes: + in pointed to type 'const lttng_evaluation': + unqualified underlying type 'struct lttng_evaluation' changed, as = reported earlier + + [C] 'function void lttng_evaluation_destroy(lttng_evaluation*)' has some= indirect sub-type changes: + parameter 1 of type 'lttng_evaluation*' has sub-type changes: + pointed to type 'struct lttng_evaluation' changed, as reported earli= er + [C] 'function lttng_condition_type lttng_evaluation_get_type(const lttng= _evaluation*)' has some indirect sub-type changes: return type changed: enum type 'enum lttng_condition_type' changed, as reported earlier + parameter 1 of type 'const lttng_evaluation*' has sub-type changes: + in pointed to type 'const lttng_evaluation': + unqualified underlying type 'struct lttng_evaluation' changed, as = reported earlier =20 [C] 'function int lttng_event_get_exclusion_name(lttng_event*, size_t, c= onst char**)' has some indirect sub-type changes: parameter 1 of type 'lttng_event*' has sub-type changes: @@ -197,27 +367,82 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Ad= ded variables type size changed from 192 to 128 (in bits) 1 data member deletion: 'bool lttng_notification::owns_elements', at offset 128 (in bi= ts) + 2 data member changes: + type of 'lttng_condition* lttng_notification::condition' chang= ed: + pointed to type 'struct lttng_condition' changed, as reporte= d earlier + type of 'lttng_evaluation* lttng_notification::evaluation' cha= nged: + pointed to type 'struct lttng_evaluation' changed, as report= ed earlier =20 [C] 'function lttng_notification_channel_status lttng_notification_chann= el_subscribe(lttng_notification_channel*, const lttng_condition*)' has some= indirect sub-type changes: return type changed: enum type 'enum lttng_notification_channel_status' changed, as repor= ted earlier + parameter 2 of type 'const lttng_condition*' has sub-type changes: + in pointed to type 'const lttng_condition': + unqualified underlying type 'struct lttng_condition' changed, as r= eported earlier =20 [C] 'function lttng_notification_channel_status lttng_notification_chann= el_unsubscribe(lttng_notification_channel*, const lttng_condition*)' has so= me indirect sub-type changes: return type changed: enum type 'enum lttng_notification_channel_status' changed, as repor= ted earlier + parameter 2 of type 'const lttng_condition*' has sub-type changes: + in pointed to type 'const lttng_condition': + unqualified underlying type 'struct lttng_condition' changed, as r= eported earlier =20 [C] 'function void lttng_notification_destroy(lttng_notification*)' has = some indirect sub-type changes: parameter 1 of type 'lttng_notification*' has sub-type changes: pointed to type 'struct lttng_notification' changed, as reported ear= lier =20 [C] 'function const lttng_condition* lttng_notification_get_condition(lt= tng_notification*)' has some indirect sub-type changes: + return type changed: + in pointed to type 'const lttng_condition': + unqualified underlying type 'struct lttng_condition' changed, as r= eported earlier parameter 1 of type 'lttng_notification*' has sub-type changes: pointed to type 'struct lttng_notification' changed, as reported ear= lier =20 [C] 'function const lttng_evaluation* lttng_notification_get_evaluation(= lttng_notification*)' has some indirect sub-type changes: + return type changed: + in pointed to type 'const lttng_evaluation': + unqualified underlying type 'struct lttng_evaluation' changed, as = reported earlier parameter 1 of type 'lttng_notification*' has sub-type changes: pointed to type 'struct lttng_notification' changed, as reported ear= lier =20 + [C] 'function int lttng_register_trigger(lttng_trigger*)' has some indir= ect sub-type changes: + parameter 1 of type 'lttng_trigger*' has sub-type changes: + in pointed to type 'struct lttng_trigger': + type size hasn't changed + 2 data member changes: + type of 'lttng_condition* lttng_trigger::condition' changed: + pointed to type 'struct lttng_condition' changed, as reported = earlier + type of 'lttng_action* lttng_trigger::action' changed: + pointed to type 'struct lttng_action' changed, as reported ear= lier + + [C] 'function lttng_trigger* lttng_trigger_create(lttng_condition*, lttn= g_action*)' has some indirect sub-type changes: + return type changed: + pointed to type 'struct lttng_trigger' changed, as reported earlier + parameter 1 of type 'lttng_condition*' has sub-type changes: + pointed to type 'struct lttng_condition' changed, as reported earlie= r + parameter 2 of type 'lttng_action*' has sub-type changes: + pointed to type 'struct lttng_action' changed, as reported earlier + + [C] 'function void lttng_trigger_destroy(lttng_trigger*)' has some indir= ect sub-type changes: + parameter 1 of type 'lttng_trigger*' has sub-type changes: + pointed to type 'struct lttng_trigger' changed, as reported earlier + + [C] 'function lttng_action* lttng_trigger_get_action(lttng_trigger*)' ha= s some indirect sub-type changes: + return type changed: + pointed to type 'struct lttng_action' changed, as reported earlier + parameter 1 of type 'lttng_trigger*' has sub-type changes: + pointed to type 'struct lttng_trigger' changed, as reported earlier + + [C] 'function lttng_condition* lttng_trigger_get_condition(lttng_trigger= *)' has some indirect sub-type changes: + return type changed: + pointed to type 'struct lttng_condition' changed, as reported earlie= r + parameter 1 of type 'lttng_trigger*' has sub-type changes: + pointed to type 'struct lttng_trigger' changed, as reported earlier + + [C] 'function int lttng_unregister_trigger(lttng_trigger*)' has some ind= irect sub-type changes: + parameter 1 of type 'lttng_trigger*' has sub-type changes: + pointed to type 'struct lttng_trigger' changed, as reported earlier + [C] 'function filter_parser_ctx* lttng_yyget_extra(yyscan_t)' has some i= ndirect sub-type changes: return type changed: in pointed to type 'struct filter_parser_ctx': diff --git a/tests/data/test-diff-pkg/elfutils-libs-0.170-4.el7.x86_64-mult= iple-sym-vers-report-0.txt b/tests/data/test-diff-pkg/elfutils-libs-0.170-4= .el7.x86_64-multiple-sym-vers-report-0.txt index 9d1f078d..8ce5aa3c 100644 --- a/tests/data/test-diff-pkg/elfutils-libs-0.170-4.el7.x86_64-multiple-sy= m-vers-report-0.txt +++ b/tests/data/test-diff-pkg/elfutils-libs-0.170-4.el7.x86_64-multiple-sy= m-vers-report-0.txt @@ -1,5 +1,5 @@ =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D changes of 'libdw-0.170.s= o'=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - Functions changes summary: 0 Removed, 0 Changed (175 filtered out), 4 Ad= ded functions + Functions changes summary: 0 Removed, 0 Changed (178 filtered out), 4 Ad= ded functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable =20 4 Added functions: diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.1= 2.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.= 4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt index c64da3be..6fbcc4b7 100644 --- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.e= l7.x86_64-report-2.txt +++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.e= l7.x86_64-report-2.txt @@ -43,6 +43,477 @@ type size changed from 960 to 1024 (in b= its) 1 data member insertion: 'dispatcher_handle_any_message Dispatc= her::any_handler', at offset 960 (in bits) at dispatcher.h:56:1 + 1 data member change: + type of 'SpiceCoreInterface* Dispatche= r::recv_core' changed: + in pointed to type 'typedef SpiceCor= eInterface' at spice-core.h:56:1: + underlying type 'struct SpiceCoreI= nterface' at spice.h:82:1 changed: + type size hasn't changed + 3 data member changes: + type of 'SpiceWatch* (int, int= , typedef SpiceWatchFunc, void*)* SpiceCoreInterface::watch_add' changed: + in pointed to type 'function= type SpiceWatch* (int, int, typedef SpiceWatchFunc, void*)': + return type changed: + in pointed to type 'type= def SpiceWatch' at spice-core.h:68:1: + underlying type 'struc= t SpiceWatch' at red_worker.c:268:1 changed: + type size hasn't cha= nged + 1 data member change= : + type of 'RedWorker= * SpiceWatch::worker' changed: + in pointed to ty= pe 'struct RedWorker' at red_worker.c:932:1: + type size chan= ged from 15520192 to 14876992 (in bits) + 1 data member = deletion: + 'uint32_t Re= dWorker::preload_group_id', at offset 15379968 (in bits) at red_worker.c:99= 2:1 + 1 data member = insertion: + 'FILE* RedWo= rker::record_fd', at offset 14876928 (in bits) at red_worker.c:1037:1 + 37 data member= changes (2 filtered): + type of 'Dis= playChannel* RedWorker::display_channel' changed: + in pointed= to type 'typedef DisplayChannel' at red_worker.c:434:1: + underlyi= ng type 'struct DisplayChannel' at red_worker.c:715:1 changed: + type s= ize hasn't changed + 1 data= member change: + type= of 'CommonChannel DisplayChannel::common' changed: + un= derlying type 'struct CommonChannel' at red_worker.c:650:1 changed: + = type size hasn't changed + = 2 data member changes: + = type of 'RedChannel CommonChannel::base' changed: + = underlying type 'struct RedChannel' at red_channel.h:303:1 changed: + = type size hasn't changed + = 3 data member changes: + = type of 'SpiceCoreInterface* RedChannel::core' changed: + = in pointed to type 'typedef SpiceCoreInterface': + = entity changed from 'typedef SpiceCoreInterface' to 'const Spic= eCoreInterface' + = type size hasn't changed + = type of 'ChannelCbs RedChannel::channel_cbs' changed: + = underlying type 'struct {channel_configure_socket_proc config_soc= ket; channel_disconnect_proc on_disconnect; channel_send_pipe_item_proc sen= d_item; channel_hold_pipe_item_proc hold_item; channel_release_pipe_item_pr= oc release_item; channel_alloc_msg_recv_buf_proc alloc_recv_buf; channel_re= lease_msg_recv_buf_proc release_recv_buf; channel_handle_migrate_flush_mark= _proc handle_migrate_flush_mark; channel_handle_migrate_data_proc handle_mi= grate_data; channel_handle_migrate_data_get_serial_proc handle_migrate_data= _get_serial;}' at red_channel.h:195:1 changed: + = type size hasn't changed + = 10 data member changes: + = type of 'channel_configure_socket_proc config_socket' changed= : + = underlying type 'int (RedChannelClient*)*' changed: + = in pointed to type 'function type int (RedChannelClient*)= ': + = parameter 1 of type 'RedChannelClient*' has sub-type ch= anges: + = in pointed to type 'typedef RedChannelClient' at red_= channel.h:131:1: + = underlying type 'struct RedChannelClient' at red_ch= annel.h:247:1 changed: + = type size hasn't changed + = 3 data member changes (2 filtered): + = type of 'RedChannel* RedChannelClient::channel'= changed: + = in pointed to type 'typedef RedChannel' at re= d_channel.h:130:1: + = underlying type 'struct RedChannel' changed= , as being reported + = type of 'RedClient* RedChannelClient::client' c= hanged: + = in pointed to type 'typedef RedClient' at red= _channel.h:132:1: + = underlying type 'struct RedClient' at red_c= hannel.h:561:1 changed: + = type size hasn't changed + = 1 data member change: + = type of 'MainChannelClient* RedClient::= mcc' changed: + = in pointed to type 'typedef MainChann= elClient' at red_channel.h:133:1: + = underlying type 'struct MainChannel= Client' at main_channel.c:145:1 changed: + = type size hasn't changed + = 1 data member change: + = type of 'RedChannelClient MainC= hannelClient::base' changed: + = underlying type 'struct RedCh= annelClient' changed, as being reported + = type of 'RedsStream* RedChannelClient::stream' = changed: + = in pointed to type 'typedef RedsStream' at re= ds_stream.h:31:1: + = underlying type 'struct RedsStream' at reds= .h:68:1 changed: + = type size changed from 1280 to 256 (in bi= ts) + = 5 data member deletions: + = 'RedsSASL RedsStream::sasl', at offset = 256 (in bits) at reds.h:78:1 + = 'SpiceChannelEventInfo* RedsStream::inf= o', at offset 1024 (in bits) at reds.h:85:1 + = 'typedef ssize_t (RedsStream*, void*, t= ypedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1 + = 'typedef ssize_t (RedsStream*, void*, t= ypedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1 + = 'typedef ssize_t (RedsStream*, const io= vec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1 + = 2 data member changes: + = type of 'SSL* RedsStream::ssl' changed: + = in pointed to type 'typedef SSL' at r= eds_stream.h:32:1: + = typedef name changed from SSL to Re= dsStreamPrivate at reds_stream.h:32:1 + = underlying type 'struct ssl_st' at = ssl.h:1065:1 changed: + = type name changed from 'ssl_st' t= o 'RedsStreamPrivate' + = type size changed from 5504 to 0 = (in bits) + = 94 data member deletions: + = 'int ssl_st::version', at offse= t 0 (in bits) at ssl.h:1070:1 + = 'int ssl_st::type', at offset 3= 2 (in bits) at ssl.h:1071:1 + = 'const SSL_METHOD* ssl_st::meth= od', at offset 64 (in bits) at ssl.h:1073:1 + = 'BIO* ssl_st::rbio', at offset = 128 (in bits) at ssl.h:1080:1 + = 'BIO* ssl_st::wbio', at offset = 192 (in bits) at ssl.h:1081:1 + = 'BIO* ssl_st::bbio', at offset = 256 (in bits) at ssl.h:1082:1 + = 'int ssl_st::rwstate', at offse= t 320 (in bits) at ssl.h:1093:1 + = 'int ssl_st::in_handshake', at = offset 352 (in bits) at ssl.h:1096:1 + = 'int (SSL*)* ssl_st::handshake_= func', at offset 384 (in bits) at ssl.h:1097:1 + = 'int ssl_st::server', at offset= 448 (in bits) at ssl.h:1107:1 + = 'int ssl_st::new_session', at o= ffset 480 (in bits) at ssl.h:1109:1 + = 'int ssl_st::quiet_shutdown', a= t offset 512 (in bits) at ssl.h:1113:1 + = 'int ssl_st::shutdown', at offs= et 544 (in bits) at ssl.h:1114:1 + = 'int ssl_st::state', at offset = 576 (in bits) at ssl.h:1116:1 + = 'int ssl_st::rstate', at offset= 608 (in bits) at ssl.h:1117:1 + = 'BUF_MEM* ssl_st::init_buf', at= offset 640 (in bits) at ssl.h:1119:1 + = 'void* ssl_st::init_msg', at of= fset 704 (in bits) at ssl.h:1120:1 + = 'int ssl_st::init_num', at offs= et 768 (in bits) at ssl.h:1121:1 + = 'int ssl_st::init_off', at offs= et 800 (in bits) at ssl.h:1122:1 + = 'unsigned char* ssl_st::packet'= , at offset 832 (in bits) at ssl.h:1125:1 + = 'unsigned int ssl_st::packet_le= ngth', at offset 896 (in bits) at ssl.h:1126:1 + = 'ssl2_state_st* ssl_st::s2', at= offset 960 (in bits) at ssl.h:1128:1 + = 'ssl3_state_st* ssl_st::s3', at= offset 1024 (in bits) at ssl.h:1129:1 + = 'dtls1_state_st* ssl_st::d1', a= t offset 1088 (in bits) at ssl.h:1130:1 + = 'int ssl_st::read_ahead', at of= fset 1152 (in bits) at ssl.h:1132:1 + = 'void (int, int, int, void*, ty= pedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits)= at ssl.h:1136:1 + = 'void* ssl_st::msg_callback_arg= ', at offset 1280 (in bits) at ssl.h:1137:1 + = 'int ssl_st::hit', at offset 13= 44 (in bits) at ssl.h:1139:1 + = 'X509_VERIFY_PARAM* ssl_st::par= am', at offset 1408 (in bits) at ssl.h:1141:1 + = 'stack_st_SSL_CIPHER* ssl_st::c= ipher_list', at offset 1472 (in bits) at ssl.h:1149:1 + = 'stack_st_SSL_CIPHER* ssl_st::c= ipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1 + = 'int ssl_st::mac_flags', at off= set 1600 (in bits) at ssl.h:1154:1 + = 'EVP_CIPHER_CTX* ssl_st::enc_re= ad_ctx', at offset 1664 (in bits) at ssl.h:1155:1 + = 'EVP_MD_CTX* ssl_st::read_hash'= , at offset 1728 (in bits) at ssl.h:1156:1 + = 'COMP_CTX* ssl_st::expand', at = offset 1792 (in bits) at ssl.h:1158:1 + = 'EVP_CIPHER_CTX* ssl_st::enc_wr= ite_ctx', at offset 1856 (in bits) at ssl.h:1163:1 + = 'EVP_MD_CTX* ssl_st::write_hash= ', at offset 1920 (in bits) at ssl.h:1164:1 + = 'COMP_CTX* ssl_st::compress', a= t offset 1984 (in bits) at ssl.h:1166:1 + = 'cert_st* ssl_st::cert', at off= set 2048 (in bits) at ssl.h:1175:1 + = 'unsigned int ssl_st::sid_ctx_l= ength', at offset 2112 (in bits) at ssl.h:1179:1 + = 'unsigned char ssl_st::sid_ctx[= 32]', at offset 2144 (in bits) at ssl.h:1180:1 + = 'SSL_SESSION* ssl_st::session',= at offset 2432 (in bits) at ssl.h:1183:1 + = 'GEN_SESSION_CB ssl_st::generat= e_session_id', at offset 2496 (in bits) at ssl.h:1186:1 + = 'int ssl_st::verify_mode', at o= ffset 2560 (in bits) at ssl.h:1189:1 + = 'int (int, X509_STORE_CTX*)* ss= l_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1 + = 'void (const SSL*, int, int)* s= sl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1 + = 'int ssl_st::error', at offset = 2752 (in bits) at ssl.h:1195:1 + = 'int ssl_st::error_code', at of= fset 2784 (in bits) at ssl.h:1196:1 + = 'KSSL_CTX* ssl_st::kssl_ctx', a= t offset 2816 (in bits) at ssl.h:1199:1 + = 'unsigned int (SSL*, const char= *, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_c= allback', at offset 2880 (in bits) at ssl.h:1203:1 + = 'unsigned int (SSL*, const char= *, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2= 944 (in bits) at ssl.h:1206:1 + = 'SSL_CTX* ssl_st::ctx', at offs= et 3008 (in bits) at ssl.h:1210:1 + = 'int ssl_st::debug', at offset = 3072 (in bits) at ssl.h:1213:1 + = 'long int ssl_st::verify_result= ', at offset 3136 (in bits) at ssl.h:1216:1 + = 'CRYPTO_EX_DATA ssl_st::ex_data= ', at offset 3200 (in bits) at ssl.h:1217:1 + = 'stack_st_X509_NAME* ssl_st::cl= ient_CA', at offset 3328 (in bits) at ssl.h:1220:1 + = 'int ssl_st::references', at of= fset 3392 (in bits) at ssl.h:1222:1 + = 'unsigned long int ssl_st::opti= ons', at offset 3456 (in bits) at ssl.h:1223:1 + = 'unsigned long int ssl_st::mode= ', at offset 3520 (in bits) at ssl.h:1224:1 + = 'long int ssl_st::max_cert_list= ', at offset 3584 (in bits) at ssl.h:1225:1 + = 'int ssl_st::first_packet', at = offset 3648 (in bits) at ssl.h:1226:1 + = 'int ssl_st::client_version', a= t offset 3680 (in bits) at ssl.h:1227:1 + = 'unsigned int ssl_st::max_send_= fragment', at offset 3712 (in bits) at ssl.h:1229:1 + = 'void (SSL*, int, int, unsigned= char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at = ssl.h:1232:1 + = 'void* ssl_st::tlsext_debug_arg= ', at offset 3840 (in bits) at ssl.h:1235:1 + = 'char* ssl_st::tlsext_hostname'= , at offset 3904 (in bits) at ssl.h:1236:1 + = 'int ssl_st::servername_done', = at offset 3968 (in bits) at ssl.h:1237:1 + = 'int ssl_st::tlsext_status_type= ', at offset 4000 (in bits) at ssl.h:1244:1 + = 'int ssl_st::tlsext_status_expe= cted', at offset 4032 (in bits) at ssl.h:1246:1 + = 'stack_st_OCSP_RESPID* ssl_st::= tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1 + = 'X509_EXTENSIONS* ssl_st::tlsex= t_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1 + = 'unsigned char* ssl_st::tlsext_= ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1 + = 'int ssl_st::tlsext_ocsp_resple= n', at offset 4288 (in bits) at ssl.h:1252:1 + = 'int ssl_st::tlsext_ticket_expe= cted', at offset 4320 (in bits) at ssl.h:1255:1 + = 'size_t ssl_st::tlsext_ecpointf= ormatlist_length', at offset 4352 (in bits) at ssl.h:1257:1 + = 'unsigned char* ssl_st::tlsext_= ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1 + = 'size_t ssl_st::tlsext_elliptic= curvelist_length', at offset 4480 (in bits) at ssl.h:1259:1 + = 'unsigned char* ssl_st::tlsext_= ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1 + = 'void* ssl_st::tlsext_opaque_pr= f_input', at offset 4608 (in bits) at ssl.h:1264:1 + = 'size_t ssl_st::tlsext_opaque_p= rf_input_len', at offset 4672 (in bits) at ssl.h:1265:1 + = 'TLS_SESSION_TICKET_EXT* ssl_st= ::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1 + = 'tls_session_ticket_ext_cb_fn s= sl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1 + = 'void* ssl_st::tls_session_tick= et_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1 + = 'tls_session_secret_cb_fn ssl_s= t::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1 + = 'void* ssl_st::tls_session_secr= et_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1 + = 'SSL_CTX* ssl_st::initial_ctx',= at offset 5056 (in bits) at ssl.h:1278:1 + = 'unsigned char* ssl_st::next_pr= oto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1 + = 'unsigned char ssl_st::next_pro= to_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1 + = 'stack_st_SRTP_PROTECTION_PROFI= LE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1 + = 'SRTP_PROTECTION_PROFILE* ssl_s= t::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1 + = 'unsigned int ssl_st::tlsext_he= artbeat', at offset 5376 (in bits) at ssl.h:1297:1 + = 'unsigned int ssl_st::tlsext_hb= _pending', at offset 5408 (in bits) at ssl.h:1302:1 + = 'unsigned int ssl_st::tlsext_hb= _seq', at offset 5440 (in bits) at ssl.h:1303:1 + = 'int ssl_st::renegotiate', at o= ffset 5472 (in bits) at ssl.h:1308:1 + = and name of 'RedsStream::ssl' changed t= o 'RedsStream::priv' at reds_stream.h:42:1 + = type of 'SpiceWatch* RedsStream::watch'= changed: + = in pointed to type 'typedef SpiceWatc= h' at spice-core.h:68:1: + = underlying type 'struct SpiceWatch'= changed, as being reported + = type of 'channel_disconnect_proc on_disconnect' changed: + = underlying type 'void (RedChannelClient*)*' changed: + = in pointed to type 'function type void (RedChannelClient*= )': + = parameter 1 of type 'RedChannelClient*' has sub-type ch= anges: + = pointed to type 'typedef RedChannelClient' changed at= red_channel.h:136:1, as reported earlier + = type of 'channel_send_pipe_item_proc send_item' changed: + = underlying type 'void (RedChannelClient*, PipeItem*)*' chan= ged: + = in pointed to type 'function type void (RedChannelClient*= , PipeItem*)': + = parameter 1 of type 'RedChannelClient*' has sub-type ch= anges: + = pointed to type 'typedef RedChannelClient' changed at= red_channel.h:136:1, as reported earlier + = type of 'channel_hold_pipe_item_proc hold_item' changed: + = underlying type 'void (RedChannelClient*, PipeItem*)*' chan= ged: + = in pointed to type 'function type void (RedChannelClient*= , PipeItem*)': + = parameter 1 of type 'RedChannelClient*' has sub-type ch= anges: + = pointed to type 'typedef RedChannelClient' changed at= red_channel.h:136:1, as reported earlier + = type of 'channel_release_pipe_item_proc release_item' changed= : + = underlying type 'void (RedChannelClient*, PipeItem*, int)*'= changed: + = in pointed to type 'function type void (RedChannelClient*= , PipeItem*, int)': + = parameter 1 of type 'RedChannelClient*' has sub-type ch= anges: + = pointed to type 'typedef RedChannelClient' changed at= red_channel.h:136:1, as reported earlier + = type of 'channel_alloc_msg_recv_buf_proc alloc_recv_buf' chan= ged: + = underlying type 'uint8_t* (RedChannelClient*, typedef uint1= 6_t, typedef uint32_t)*' changed: + = in pointed to type 'function type uint8_t* (RedChannelCli= ent*, typedef uint16_t, typedef uint32_t)': + = parameter 1 of type 'RedChannelClient*' has sub-type ch= anges: + = pointed to type 'typedef RedChannelClient' changed at= red_channel.h:136:1, as reported earlier + = type of 'channel_release_msg_recv_buf_proc release_recv_buf' = changed: + = underlying type 'void (RedChannelClient*, typedef uint16_t,= typedef uint32_t, uint8_t*)*' changed: + = in pointed to type 'function type void (RedChannelClient*= , typedef uint16_t, typedef uint32_t, uint8_t*)': + = parameter 1 of type 'RedChannelClient*' has sub-type ch= anges: + = pointed to type 'typedef RedChannelClient' changed at= red_channel.h:136:1, as reported earlier + = type of 'channel_handle_migrate_flush_mark_proc handle_migrat= e_flush_mark' changed: + = underlying type 'int (RedChannelClient*)*' changed: + = in pointed to type 'function type int (RedChannelClient*)= ': + = parameter 1 of type 'RedChannelClient*' has sub-type ch= anges: + = pointed to type 'typedef RedChannelClient' changed at= red_channel.h:136:1, as reported earlier + = type of 'channel_handle_migrate_data_proc handle_migrate_data= ' changed: + = underlying type 'int (RedChannelClient*, typedef uint32_t, = void*)*' changed: + = in pointed to type 'function type int (RedChannelClient*,= typedef uint32_t, void*)': + = parameter 1 of type 'RedChannelClient*' has sub-type ch= anges: + = pointed to type 'typedef RedChannelClient' changed at= red_channel.h:136:1, as reported earlier + = type of 'channel_handle_migrate_data_get_serial_proc handle_m= igrate_data_get_serial' changed: + = underlying type 'typedef uint64_t (RedChannelClient*, typed= ef uint32_t, void*)*' changed: + = in pointed to type 'function type typedef uint64_t (RedCh= annelClient*, typedef uint32_t, void*)': + = parameter 1 of type 'RedChannelClient*' has sub-type ch= anges: + = pointed to type 'typedef RedChannelClient' changed at= red_channel.h:136:1, as reported earlier + = type of 'ClientCbs RedChannel::client_cbs' changed: + = underlying type 'struct {channel_client_connect_proc connect; cha= nnel_client_disconnect_proc disconnect; channel_client_migrate_proc migrate= ;}' at red_channel.h:213:1 changed: + = type size hasn't changed + = 3 data member changes: + = type of 'channel_client_connect_proc connect' changed: + = underlying type 'void (RedChannel*, RedClient*, RedsStream*= , int, int, uint32_t*, int, uint32_t*)*' changed: + = in pointed to type 'function type void (RedChannel*, RedC= lient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)': + = parameter 1 of type 'RedChannel*' has sub-type changes: + = in pointed to type 'typedef RedChannel' at red_channe= l.h:130:1: + = underlying type 'struct RedChannel' changed, as bei= ng reported + = parameter 2 of type 'RedClient*' has sub-type changes: + = pointed to type 'typedef RedClient' changed at red_ch= annel.h:137:1, as reported earlier + = parameter 3 of type 'RedsStream*' has sub-type changes: + = pointed to type 'typedef RedsStream' changed at red_c= hannel.h:134:1, as reported earlier + = type of 'channel_client_disconnect_proc disconnect' changed: + = underlying type 'void (RedChannelClient*)*' changed: + = in pointed to type 'function type void (RedChannelClient*= )': + = parameter 1 of type 'RedChannelClient*' has sub-type ch= anges: + = pointed to type 'typedef RedChannelClient' changed at= red_channel.h:136:1, as reported earlier + = type of 'channel_client_migrate_proc migrate' changed: + = underlying type 'void (RedChannelClient*)*' changed: + = in pointed to type 'function type void (RedChannelClient*= )': + = parameter 1 of type 'RedChannelClient*' has sub-type ch= anges: + = pointed to type 'typedef RedChannelClient' changed at= red_channel.h:136:1, as reported earlier + = type of 'RedWorker* CommonChannel::worker' changed: + = pointed to type 'struct RedWorker' changed, as being reported + type of 'Cur= sorChannel* RedWorker::cursor_channel' changed: + in pointed= to type 'typedef CursorChannel' at red_worker.c:774:1: + underlyi= ng type 'struct CursorChannel' at red_worker.c:750:1 changed: + type s= ize hasn't changed + 1 data= member change: + type= of 'CommonChannel CursorChannel::common' changed, as reported earlier + type of 'QXL= Instance* RedWorker::qxl' changed: + in pointed= to type 'typedef QXLInstance' at spice-qxl.h:34:1: + underlyi= ng type 'struct QXLInstance' at spice.h:259:1 changed: + type s= ize hasn't changed + 1 data= member change: + type= of 'QXLState* QXLInstance::st' changed: + in= pointed to type 'typedef QXLState' at spice-qxl.h:35:1: + = underlying type 'struct QXLState' at reds.h:93:1 changed: + = type size hasn't changed + = 1 data member change: + = type of 'RedDispatcher* QXLState::dispatcher' changed: + = pointed to type 'struct RedDispatcher' changed, as being reported + type of 'Red= Dispatcher* RedWorker::red_dispatcher' changed: + in pointed= to type 'typedef RedDispatcher': + entity c= hanged from 'typedef RedDispatcher' to compatible type 'struct RedDispatche= r' + detail= s are being reported + type of 'Spi= ceWatch RedWorker::watches[20]' changed: + array elem= ent type 'struct SpiceWatch' changed:=20 + details = are being reported + type size = hasn't changed + type of 'Mon= itorsConfig* RedWorker::monitors_config' changed: + in pointed= to type 'typedef MonitorsConfig' at red_worker.c:361:1: + underlyi= ng type 'struct MonitorsConfig' at red_worker.c:344:1 changed: + type s= ize hasn't changed + 1 data= member change: + type= of 'RedWorker* MonitorsConfig::worker' changed: + po= inted to type 'struct RedWorker' changed, as being reported + type of '_Dr= awable RedWorker::drawables[1000]' changed: + array elem= ent type 'typedef _Drawable' changed:=20 + underlyi= ng type 'struct _Drawable' at red_worker.c:874:1 changed: + type s= ize changed from 3200 to 2560 (in bits) + 1 data= member change: + type= of 'union {Drawable drawable; _Drawable* next;} _Drawable::u' changed: + ty= pe size changed from 3200 to 2560 (in bits) + 2 = data member changes: + = type of 'Drawable drawable' changed: + = underlying type 'struct Drawable' at red_worker.c:838:1 changed: + = type size changed from 3200 to 2560 (in bits) + = 2 data member deletions: + = 'uint8_t* Drawable::backed_surface_data', at offset 2368 (in bits) at= red_worker.c:864:1 + = 'DependItem Drawable::pipe_depend_items[3]', at offset 2432 (in bits)= at red_worker.c:865:1 + = 6 data member changes (1 filtered): + = type of 'Stream* Drawable::stream' changed: + = in pointed to type 'typedef Stream' at red_worker.c:443:1: + = underlying type 'struct Stream' at red_worker.c:433:1 changed: + = type size changed from 896 to 832 (in bits) + = 2 data member deletions: + = 'SpiceTimer* Stream::input_fps_timer', at offset 640 (in bits= ) at red_worker.c:444:1 + = 'uint64_t Stream::input_fps_timer_start', at offset 768 (in b= its) at red_worker.c:446:1 + = 1 data member insertion: + = 'uint64_t Stream::input_fps_start_time', at offset 704 (in bi= ts) at red_worker.c:456:1 + = 4 data member changes: + = type of 'Drawable* Stream::current' changed: + = in pointed to type 'typedef Drawable' at red_worker.c:432:1= : + = underlying type 'struct Drawable' changed, as being repor= ted + = type of 'Stream* Stream::next' changed: + = in pointed to type 'typedef Stream' at red_worker.c:443:1: + = underlying type 'struct Stream' changed, as being reporte= d + = 'uint32_t Stream::num_input_frames' offset changed from 704 t= o 640 (in bits) (by -64 bits) + = 'uint32_t Stream::input_fps' offset changed from 832 to 768 (= in bits) (by -64 bits) + = type of 'Stream* Drawable::sized_stream' changed: + = pointed to type 'typedef Stream' changed at red_worker.c:432:1, as = reported earlier + = type of 'DependItem Drawable::depend_items[3]' changed: + = array element type 'typedef DependItem' changed:=20 + = underlying type 'struct DependItem' at red_worker.c:825:1 changed= : + = type size hasn't changed + = 1 data member change: + = type of 'Drawable* DependItem::drawable' changed: + = in pointed to type 'typedef Drawable' at red_worker.c:432:1= : + = underlying type 'struct Drawable' changed, as being repor= ted + = type size hasn't changed + = 'int Drawable::surface_id' offset changed from 3008 to 2368 (in bits)= (by -640 bits) + = 'int Drawable::surfaces_dest[3]' offset changed from 3040 to 2400 (in= bits) (by -640 bits) + = 'uint32_t Drawable::process_commands_generation' offset changed from = 3136 to 2496 (in bits) (by -640 bits) + = type of '_Drawable* next' changed: + = in pointed to type 'typedef _Drawable' at red_worker.c:865:1: + = underlying type 'struct _Drawable' changed, as being reported + array type= size changed from 3200000 to 2560000 + type of '_Dr= awable* RedWorker::free_drawables' changed: + pointed to= type 'typedef _Drawable' changed at red_worker.c:873:1, as reported earlie= r + and offset c= hanged from 15366720 to 14726720 (in bits) (by -640000 bits) + '_CursorItem= RedWorker::cursor_items[100]' offset changed from 15366784 to 14726784 (in= bits) (by -640000 bits) + '_CursorItem= * RedWorker::free_cursor_items' offset changed from 15379584 to 14739584 (i= n bits) (by -640000 bits) + 'RedMemSlotI= nfo RedWorker::mem_slots' offset changed from 15379648 to 14739648 (in bits= ) (by -640000 bits) + 'ImageCache = RedWorker::image_cache' offset changed from 15380032 to 14739968 (in bits) = (by -640064 bits) + type of 'spi= ce_image_compression_t RedWorker::image_compression' changed: + typedef na= me changed from spice_image_compression_t to SpiceImageCompression at enums= .h:197:1 + underlying= type 'enum __anonymous_enum__2' at spice.h:471:1 changed: + type nam= e changed from '__anonymous_enum__2' to 'SpiceImageCompression' + type siz= e hasn't changed + 7 enumer= ator deletions: + '__ano= nymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0' + '__ano= nymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1' + '__ano= nymous_enum__2::SPICE_IMAGE_COMPRESS_AUTO_GLZ' value '2' + '__ano= nymous_enum__2::SPICE_IMAGE_COMPRESS_AUTO_LZ' value '3' + '__ano= nymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4' + '__ano= nymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5' + '__ano= nymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6' + 9 enumer= ator insertions: + 'Spice= ImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0' + 'Spice= ImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1' + 'Spice= ImageCompression::SPICE_IMAGE_COMPRESSION_AUTO_GLZ' value '2' + 'Spice= ImageCompression::SPICE_IMAGE_COMPRESSION_AUTO_LZ' value '3' + 'Spice= ImageCompression::SPICE_IMAGE_COMPRESSION_QUIC' value '4' + 'Spice= ImageCompression::SPICE_IMAGE_COMPRESSION_GLZ' value '5' + 'Spice= ImageCompression::SPICE_IMAGE_COMPRESSION_LZ' value '6' + 'Spice= ImageCompression::SPICE_IMAGE_COMPRESSION_LZ4' value '7' + 'Spice= ImageCompression::SPICE_IMAGE_COMPRESSION_ENUM_END' value '8' + and offset c= hanged from 15445824 to 14805760 (in bits) (by -640064 bits) + 'spice_wan_c= ompression_t RedWorker::jpeg_state' offset changed from 15445856 to 1480579= 2 (in bits) (by -640064 bits) + 'spice_wan_c= ompression_t RedWorker::zlib_glz_state' offset changed from 15445888 to 148= 05824 (in bits) (by -640064 bits) + 'uint32_t Re= dWorker::mouse_mode' offset changed from 15445920 to 14805856 (in bits) (by= -640064 bits) + 'uint32_t Re= dWorker::streaming_video' offset changed from 15445952 to 14805888 (in bits= ) (by -640064 bits) + type of 'Str= eam RedWorker::streams_buf[50]' changed: + array elem= ent type 'typedef Stream' changed:=20 + underlyi= ng type 'struct Stream' changed at red_worker.c:433:1, as reported earlier + array type= size changed from 44800 to 41600 + and offset c= hanged from 15446016 to 14805952 (in bits) (by -640064 bits) + type of 'Str= eam* RedWorker::free_streams' changed: + pointed to= type 'typedef Stream' changed at red_worker.c:432:1, as reported earlier + and offset c= hanged from 15490816 to 14847552 (in bits) (by -643264 bits) + 'Ring RedWor= ker::streams' offset changed from 15490880 to 14847616 (in bits) (by -64326= 4 bits) + 'ItemTrace R= edWorker::items_trace[8]' offset changed from 15491008 to 14847744 (in bits= ) (by -643264 bits) + 'uint32_t Re= dWorker::next_item_trace' offset changed from 15494080 to 14850816 (in bits= ) (by -643264 bits) + 'uint64_t Re= dWorker::streams_size_total' offset changed from 15494144 to 14850880 (in b= its) (by -643264 bits) + type of 'Qui= cData RedWorker::quic_data' changed: + underlying= type 'struct {QuicUsrContext usr; EncoderData data;}' at red_worker.c:577:= 1 changed: + type siz= e hasn't changed + 1 data m= ember change: + type o= f 'EncoderData data' changed: + unde= rlying type 'struct {DisplayChannelClient* dcc; RedCompressBuf* bufs_head; = RedCompressBuf* bufs_tail; jmp_buf jmp_env; union {struct {SpiceChunks* chu= nks; int next; int stride; int reverse;} lines_data; struct {RedCompressBuf= * next; int size_left;} compressed_data;} u; char message_buf[512];}' at re= d_worker.c:557:1 changed: + ty= pe size hasn't changed + 1 = data member change: + = type of 'DisplayChannelClient* dcc' changed: + = in pointed to type 'typedef DisplayChannelClient' at red_worker.c:435:1: + = underlying type 'struct DisplayChannelClient' at red_worker.c:672:1 cha= nged: + = type size hasn't changed + = 5 data member changes: + = type of 'CommonChannelClient DisplayChannelClient::common' changed: + = underlying type 'struct CommonChannelClient' at red_worker.c:662:= 1 changed: + = type size hasn't changed + = 2 data member changes: + = type of 'RedChannelClient CommonChannelClient::base' changed,= as reported earlier + = type of 'RedWorker* CommonChannelClient::worker' changed: + = pointed to type 'struct RedWorker' changed, as being report= ed + = type of 'PixmapCache* DisplayChannelClient::pixmap_cache' changed: + = in pointed to type 'typedef PixmapCache' at red_worker.c:527:1: + = underlying type 'struct PixmapCache' at red_worker.c:518:1 chan= ged: + = type size hasn't changed + = 1 data member change: + = type of 'RedClient* PixmapCache::client' changed: + = pointed to type 'typedef RedClient' changed at red_channe= l.h:137:1, as reported earlier + = type of 'GlzSharedDictionary* DisplayChannelClient::glz_dict' chang= ed: + = in pointed to type 'typedef GlzSharedDictionary' at red_worker.c:= 663:1: + = underlying type 'struct GlzSharedDictionary' at red_worker.c:63= 8:1 changed: + = type size hasn't changed + = 1 data member change: + = type of 'RedClient* GlzSharedDictionary::client' changed: + = pointed to type 'typedef RedClient' changed at red_channe= l.h:137:1, as reported earlier + = type of 'GlzData DisplayChannelClient::glz_data' changed: + = underlying type 'struct {GlzEncoderUsrContext usr; EncoderData da= ta;}' at red_worker.c:587:1 changed: + = type size hasn't changed + = 1 data member change: + = type of 'EncoderData data' changed: + = underlying type 'struct {DisplayChannelClient* dcc; RedComp= ressBuf* bufs_head; RedCompressBuf* bufs_tail; jmp_buf jmp_env; union {stru= ct {SpiceChunks* chunks; int next; int stride; int reverse;} lines_data; st= ruct {RedCompressBuf* next; int size_left;} compressed_data;} u; char messa= ge_buf[512];}' changed, as being reported + = type of 'StreamAgent DisplayChannelClient::stream_agents[50]' chang= ed: + = array element type 'typedef StreamAgent' changed:=20 + = underlying type 'struct StreamAgent' at red_worker.c:464:1 chan= ged: + = type size hasn't changed + = 2 data member changes: + = type of 'Stream* StreamAgent::stream' changed: + = pointed to type 'typedef Stream' changed at red_worker.c:= 432:1, as reported earlier + = type of 'DisplayChannelClient* StreamAgent::dcc' changed: + = in pointed to type 'typedef DisplayChannelClient' at red_= worker.c:435:1: + = underlying type 'struct DisplayChannelClient' changed, = as being reported + = type size hasn't changed + and offset c= hanged from 15494208 to 14850944 (in bits) (by -643264 bits) + 'QuicContext= * RedWorker::quic' offset changed from 15500736 to 14857472 (in bits) (by -= 643264 bits) + type of 'LzD= ata RedWorker::lz_data' changed: + underlying= type 'struct {LzUsrContext usr; EncoderData data;}' at red_worker.c:582:1 = changed: + type siz= e hasn't changed + 1 data m= ember change: + type o= f 'EncoderData data' changed, as reported earlier + and offset c= hanged from 15500800 to 14857536 (in bits) (by -643264 bits) + 'LzContext* = RedWorker::lz' offset changed from 15507328 to 14864064 (in bits) (by -6432= 64 bits) + type of 'Jpe= gData RedWorker::jpeg_data' changed: + underlying= type 'struct {JpegEncoderUsrContext usr; EncoderData data;}' at red_worker= .c:592:1 changed: + type siz= e hasn't changed + 1 data m= ember change: + type o= f 'EncoderData data' changed, as reported earlier + and offset c= hanged from 15507392 to 14864128 (in bits) (by -643264 bits) + 'JpegEncoder= Context* RedWorker::jpeg' offset changed from 15513600 to 14870336 (in bits= ) (by -643264 bits) + type of 'Zli= bData RedWorker::zlib_data' changed: + underlying= type 'struct {ZlibEncoderUsrContext usr; EncoderData data;}' at red_worker= .c:597:1 changed: + type siz= e hasn't changed + 1 data m= ember change: + type o= f 'EncoderData data' changed, as reported earlier + and offset c= hanged from 15513664 to 14870400 (in bits) (by -643264 bits) + 'ZlibEncoder= * RedWorker::zlib' offset changed from 15519872 to 14876608 (in bits) (by -= 643264 bits) + 'uint32_t Re= dWorker::process_commands_generation' offset changed from 15519936 to 14876= 672 (in bits) (by -643264 bits) + 'StatNodeRef= RedWorker::stat' offset changed from 15519968 to 14876704 (in bits) (by -6= 43264 bits) + 'uint64_t* R= edWorker::wakeup_counter' offset changed from 15520000 to 14876736 (in bits= ) (by -643264 bits) + 'uint64_t* R= edWorker::command_counter' offset changed from 15520064 to 14876800 (in bit= s) (by -643264 bits) + 'int RedWork= er::driver_cap_monitors_config' offset changed from 15520128 to 14876864 (i= n bits) (by -643264 bits) + 'int RedWork= er::set_client_capabilities_pending' offset changed from 15520160 to 148768= 96 (in bits) (by -643264 bits) + type of 'void (SpiceWatch*, in= t)* SpiceCoreInterface::watch_update_mask' changed: + in pointed to type 'function= type void (SpiceWatch*, int)': + parameter 1 of type 'Spice= Watch*' has sub-type changes: + pointed to type 'typedef= SpiceWatch' changed at spice.h:61:1, as reported earlier + type of 'void (SpiceWatch*)* S= piceCoreInterface::watch_remove' changed: + in pointed to type 'function= type void (SpiceWatch*)': + parameter 1 of type 'Spice= Watch*' has sub-type changes: + pointed to type 'typedef= SpiceWatch' changed at spice.h:61:1, as reported earlier 'pthread_t RedDispatcher::worker_thread' off= set changed from 2048 to 2112 (in bits) (by +64 bits) 'uint32_t RedDispatcher::pending' offset cha= nged from 2112 to 2176 (in bits) (by +64 bits) 'int RedDispatcher::primary_active' offset c= hanged from 2144 to 2208 (in bits) (by +64 bits) @@ -159,11 +630,15 @@ in pointed to type 'typedef SpiceServer' at spice-server.h:38:1: underlying type 'struct RedsState' at reds-private.h:127:1 chang= ed: type size hasn't changed - 2 data member changes (2 filtered): + 5 data member changes (2 filtered): + type of 'SpiceWatch* RedsState::listen_watch' changed: + pointed to type 'typedef SpiceWatch' changed at spice.h:61= :1, as reported earlier + type of 'SpiceWatch* RedsState::secure_listen_watch' changed= : + pointed to type 'typedef SpiceWatch' changed at spice.h:61= :1, as reported earlier type of 'VDIPortState RedsState::agent_state' changed: underlying type 'struct VDIPortState' at reds-private.h:46= :1 changed: type size hasn't changed - 1 data member changes (3 filtered): + 2 data member changes (3 filtered): type of 'SpiceCharDeviceState* VDIPortState::base' cha= nged: in pointed to type 'typedef SpiceCharDeviceState' at= spice-char.h:34:1: underlying type 'struct SpiceCharDeviceState' at c= har_device.c:47:1 changed: @@ -171,7 +646,14 @@ 1 data member insertion: 'uint64_t SpiceCharDeviceState::cur_pool_size'= , at offset 384 (in bits) at char_device.c:57:1 12 data member changes: - 'SpiceCharDeviceWriteBuffer* SpiceCharDeviceSt= ate::cur_write_buf' offset changed from 384 to 448 (in bits) (by +64 bits) + type of 'SpiceCharDeviceWriteBuffer* SpiceChar= DeviceState::cur_write_buf' changed: + in pointed to type 'typedef SpiceCharDeviceW= riteBuffer' at char_device.h:94:1: + underlying type 'struct SpiceCharDeviceWri= teBuffer' at char_device.h:66:1 changed: + type size hasn't changed + 1 data member change: + type of 'RedClient* SpiceCharDeviceWri= teBuffer::client' changed: + pointed to type 'typedef RedClient' = changed at red_channel.h:137:1, as reported earlier + and offset changed from 384 to 448 (in bits) (= by +64 bits) 'uint8_t* SpiceCharDeviceState::cur_write_buf_= pos' offset changed from 448 to 512 (in bits) (by +64 bits) 'SpiceTimer* SpiceCharDeviceState::write_to_de= v_timer' offset changed from 512 to 576 (in bits) (by +64 bits) 'uint64_t SpiceCharDeviceState::num_self_token= s' offset changed from 576 to 640 (in bits) (by +64 bits) @@ -192,217 +674,39 @@ type of 'SpiceCharDeviceCallbacks SpiceCharDev= iceState::cbs' changed: underlying type 'struct SpiceCharDeviceCallb= acks' at char_device.h:81:1 changed: type size hasn't changed - 1 data member change: + 4 data member changes: type of 'SpiceCharDeviceMsgToClient* (Sp= iceCharDeviceInstance*, void*)* SpiceCharDeviceCallbacks::read_one_msg_from= _device' changed: in pointed to type 'function type Spic= eCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)': parameter 1 of type 'SpiceCharDevice= Instance*' has sub-type changes: pointed to type 'typedef SpiceChar= DeviceInstance' changed at spice.h:399:1, as reported earlier + type of 'void (SpiceCharDeviceMsgToClien= t*, RedClient*, void*)* SpiceCharDeviceCallbacks::send_msg_to_client' chang= ed: + in pointed to type 'function type void= (SpiceCharDeviceMsgToClient*, RedClient*, void*)': + parameter 2 of type 'RedClient*' has= sub-type changes: + pointed to type 'typedef RedClient= ' changed at red_channel.h:137:1, as reported earlier + type of 'void (RedClient*, typedef uint3= 2_t, void*)* SpiceCharDeviceCallbacks::send_tokens_to_client' changed: + in pointed to type 'function type void= (RedClient*, typedef uint32_t, void*)': + parameter 1 of type 'RedClient*' has= sub-type changes: + pointed to type 'typedef RedClient= ' changed at red_channel.h:137:1, as reported earlier + type of 'void (RedClient*, void*)* Spice= CharDeviceCallbacks::remove_client' changed: + in pointed to type 'function type void= (RedClient*, void*)': + parameter 1 of type 'RedClient*' has= sub-type changes: + pointed to type 'typedef RedClient= ' changed at red_channel.h:137:1, as reported earlier and offset changed from 1024 to 1088 (in bits)= (by +64 bits) 'void* SpiceCharDeviceState::opaque' offset ch= anged from 1472 to 1536 (in bits) (by +64 bits) + type of 'SpiceCharDeviceWriteBuffer* VDIPortState::rec= v_from_client_buf' changed: + pointed to type 'typedef SpiceCharDeviceWriteBuffer'= changed at char_device.h:77:1, as reported earlier type of 'MainChannel* RedsState::main_channel' changed: in pointed to type 'typedef MainChannel' at main_channel.h= :48:1: underlying type 'struct MainChannel' at main_channel.h:3= 6:1 changed: type size hasn't changed 1 data member change: - type of 'RedChannel MainChannel::base' changed: - underlying type 'struct RedChannel' at red_channel= .h:303:1 changed: - type size hasn't changed - 2 data member changes (1 filtered): - type of 'ChannelCbs RedChannel::channel_cbs' c= hanged: - underlying type 'struct {channel_configure_s= ocket_proc config_socket; channel_disconnect_proc on_disconnect; channel_se= nd_pipe_item_proc send_item; channel_hold_pipe_item_proc hold_item; channel= _release_pipe_item_proc release_item; channel_alloc_msg_recv_buf_proc alloc= _recv_buf; channel_release_msg_recv_buf_proc release_recv_buf; channel_hand= le_migrate_flush_mark_proc handle_migrate_flush_mark; channel_handle_migrat= e_data_proc handle_migrate_data; channel_handle_migrate_data_get_serial_pro= c handle_migrate_data_get_serial;}' at red_channel.h:195:1 changed: - type size hasn't changed - 10 data member changes: - type of 'channel_configure_socket_proc c= onfig_socket' changed: - underlying type 'int (RedChannelClient= *)*' changed: - in pointed to type 'function type in= t (RedChannelClient*)': - parameter 1 of type 'RedChannelCli= ent*' has sub-type changes: - in pointed to type 'typedef RedC= hannelClient' at red_channel.h:131:1: - underlying type 'struct RedCha= nnelClient' at red_channel.h:247:1 changed: - type size hasn't changed - 2 data member changes (2 fil= tered): - type of 'RedChannel* RedCh= annelClient::channel' changed: - in pointed to type 'type= def RedChannel' at red_channel.h:130:1: - underlying type 'struc= t RedChannel' changed, as being reported - type of 'RedsStream* RedCh= annelClient::stream' changed: - in pointed to type 'type= def RedsStream' at reds_stream.h:31:1: - underlying type 'struc= t RedsStream' at reds.h:68:1 changed: - type size changed fr= om 1280 to 256 (in bits) - 5 data member deleti= ons: - 'RedsSASL RedsStre= am::sasl', at offset 256 (in bits) at reds.h:78:1 - 'SpiceChannelEvent= Info* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1 - 'typedef ssize_t (= RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in = bits) at reds.h:88:1 - 'typedef ssize_t (= RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in= bits) at reds.h:89:1 - 'typedef ssize_t (= RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bi= ts) at reds.h:90:1 - 1 data member change= : - type of 'SSL* Reds= Stream::ssl' changed: - in pointed to ty= pe 'typedef SSL' at reds_stream.h:32:1: - typedef name c= hanged from SSL to RedsStreamPrivate at reds_stream.h:32:1 - underlying typ= e 'struct ssl_st' at ssl.h:1065:1 changed: - type name ch= anged from 'ssl_st' to 'RedsStreamPrivate' - type size ch= anged from 5504 to 0 (in bits) - 94 data memb= er deletions: - 'int ssl_s= t::version', at offset 0 (in bits) at ssl.h:1070:1 - 'int ssl_s= t::type', at offset 32 (in bits) at ssl.h:1071:1 - 'const SSL= _METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1 - 'BIO* ssl_= st::rbio', at offset 128 (in bits) at ssl.h:1080:1 - 'BIO* ssl_= st::wbio', at offset 192 (in bits) at ssl.h:1081:1 - 'BIO* ssl_= st::bbio', at offset 256 (in bits) at ssl.h:1082:1 - 'int ssl_s= t::rwstate', at offset 320 (in bits) at ssl.h:1093:1 - 'int ssl_s= t::in_handshake', at offset 352 (in bits) at ssl.h:1096:1 - 'int (SSL*= )* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1 - 'int ssl_s= t::server', at offset 448 (in bits) at ssl.h:1107:1 - 'int ssl_s= t::new_session', at offset 480 (in bits) at ssl.h:1109:1 - 'int ssl_s= t::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1 - 'int ssl_s= t::shutdown', at offset 544 (in bits) at ssl.h:1114:1 - 'int ssl_s= t::state', at offset 576 (in bits) at ssl.h:1116:1 - 'int ssl_s= t::rstate', at offset 608 (in bits) at ssl.h:1117:1 - 'BUF_MEM* = ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1 - 'void* ssl= _st::init_msg', at offset 704 (in bits) at ssl.h:1120:1 - 'int ssl_s= t::init_num', at offset 768 (in bits) at ssl.h:1121:1 - 'int ssl_s= t::init_off', at offset 800 (in bits) at ssl.h:1122:1 - 'unsigned = char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1 - 'unsigned = int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1 - 'ssl2_stat= e_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1 - 'ssl3_stat= e_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1 - 'dtls1_sta= te_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1 - 'int ssl_s= t::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1 - 'void (int= , int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at = offset 1216 (in bits) at ssl.h:1136:1 - 'void* ssl= _st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1 - 'int ssl_s= t::hit', at offset 1344 (in bits) at ssl.h:1139:1 - 'X509_VERI= FY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1 - 'stack_st_= SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1 - 'stack_st_= SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1= 150:1 - 'int ssl_s= t::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1 - 'EVP_CIPHE= R_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1 - 'EVP_MD_CT= X* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1 - 'COMP_CTX*= ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1 - 'EVP_CIPHE= R_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1 - 'EVP_MD_CT= X* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1 - 'COMP_CTX*= ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1 - 'cert_st* = ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1 - 'unsigned = int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1 - 'unsigned = char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1 - 'SSL_SESSI= ON* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1 - 'GEN_SESSI= ON_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:= 1 - 'int ssl_s= t::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1 - 'int (int,= X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ss= l.h:1191:1 - 'void (con= st SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl= .h:1193:1 - 'int ssl_s= t::error', at offset 2752 (in bits) at ssl.h:1195:1 - 'int ssl_s= t::error_code', at offset 2784 (in bits) at ssl.h:1196:1 - 'KSSL_CTX*= ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1 - 'unsigned = int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)*= ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1 - 'unsigned = int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_c= allback', at offset 2944 (in bits) at ssl.h:1206:1 - 'SSL_CTX* = ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1 - 'int ssl_s= t::debug', at offset 3072 (in bits) at ssl.h:1213:1 - 'long int = ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1 - 'CRYPTO_EX= _DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1 - 'stack_st_= X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1 - 'int ssl_s= t::references', at offset 3392 (in bits) at ssl.h:1222:1 - 'unsigned = long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1 - 'unsigned = long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1 - 'long int = ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1 - 'int ssl_s= t::first_packet', at offset 3648 (in bits) at ssl.h:1226:1 - 'int ssl_s= t::client_version', at offset 3680 (in bits) at ssl.h:1227:1 - 'unsigned = int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1 - 'void (SSL= *, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offs= et 3776 (in bits) at ssl.h:1232:1 - 'void* ssl= _st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1 - 'char* ssl= _st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1 - 'int ssl_s= t::servername_done', at offset 3968 (in bits) at ssl.h:1237:1 - 'int ssl_s= t::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1 - 'int ssl_s= t::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1 - 'stack_st_= OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:12= 48:1 - 'X509_EXTE= NSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1 - 'unsigned = char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1 - 'int ssl_s= t::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1 - 'int ssl_s= t::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1 - 'size_t ss= l_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1= 257:1 - 'unsigned = char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:= 1258:1 - 'size_t ss= l_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1= 259:1 - 'unsigned = char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:= 1260:1 - 'void* ssl= _st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1 - 'size_t ss= l_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:= 1 - 'TLS_SESSI= ON_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at = ssl.h:1268:1 - 'tls_sessi= on_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in = bits) at ssl.h:1271:1 - 'void* ssl= _st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272= :1 - 'tls_sessi= on_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at= ssl.h:1275:1 - 'void* ssl= _st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1 - 'SSL_CTX* = ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1 - 'unsigned = char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:128= 8:1 - 'unsigned = char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:= 1289:1 - 'stack_st_= SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) a= t ssl.h:1294:1 - 'SRTP_PROT= ECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:12= 95:1 - 'unsigned = int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1 - 'unsigned = int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1 - 'unsigned = int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1 - 'int ssl_s= t::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1 - and name of 'RedsS= tream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1 - type of 'channel_disconnect_proc on_disc= onnect' changed: - underlying type 'void (RedChannelClien= t*)*' changed: - in pointed to type 'function type vo= id (RedChannelClient*)': - parameter 1 of type 'RedChannelCli= ent*' has sub-type changes: - pointed to type 'typedef RedChan= nelClient' changed at red_channel.h:136:1, as reported earlier - type of 'channel_send_pipe_item_proc sen= d_item' changed: - underlying type 'void (RedChannelClien= t*, PipeItem*)*' changed: - in pointed to type 'function type vo= id (RedChannelClient*, PipeItem*)': - parameter 1 of type 'RedChannelCli= ent*' has sub-type changes: - pointed to type 'typedef RedChan= nelClient' changed at red_channel.h:136:1, as reported earlier - type of 'channel_hold_pipe_item_proc hol= d_item' changed: - underlying type 'void (RedChannelClien= t*, PipeItem*)*' changed: - in pointed to type 'function type vo= id (RedChannelClient*, PipeItem*)': - parameter 1 of type 'RedChannelCli= ent*' has sub-type changes: - pointed to type 'typedef RedChan= nelClient' changed at red_channel.h:136:1, as reported earlier - type of 'channel_release_pipe_item_proc = release_item' changed: - underlying type 'void (RedChannelClien= t*, PipeItem*, int)*' changed: - in pointed to type 'function type vo= id (RedChannelClient*, PipeItem*, int)': - parameter 1 of type 'RedChannelCli= ent*' has sub-type changes: - pointed to type 'typedef RedChan= nelClient' changed at red_channel.h:136:1, as reported earlier - type of 'channel_alloc_msg_recv_buf_proc= alloc_recv_buf' changed: - underlying type 'uint8_t* (RedChannelC= lient*, typedef uint16_t, typedef uint32_t)*' changed: - in pointed to type 'function type ui= nt8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)': - parameter 1 of type 'RedChannelCli= ent*' has sub-type changes: - pointed to type 'typedef RedChan= nelClient' changed at red_channel.h:136:1, as reported earlier - type of 'channel_release_msg_recv_buf_pr= oc release_recv_buf' changed: - underlying type 'void (RedChannelClien= t*, typedef uint16_t, typedef uint32_t, uint8_t*)*' changed: - in pointed to type 'function type vo= id (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)': - parameter 1 of type 'RedChannelCli= ent*' has sub-type changes: - pointed to type 'typedef RedChan= nelClient' changed at red_channel.h:136:1, as reported earlier - type of 'channel_handle_migrate_flush_ma= rk_proc handle_migrate_flush_mark' changed: - underlying type 'int (RedChannelClient= *)*' changed: - in pointed to type 'function type in= t (RedChannelClient*)': - parameter 1 of type 'RedChannelCli= ent*' has sub-type changes: - pointed to type 'typedef RedChan= nelClient' changed at red_channel.h:136:1, as reported earlier - type of 'channel_handle_migrate_data_pro= c handle_migrate_data' changed: - underlying type 'int (RedChannelClient= *, typedef uint32_t, void*)*' changed: - in pointed to type 'function type in= t (RedChannelClient*, typedef uint32_t, void*)': - parameter 1 of type 'RedChannelCli= ent*' has sub-type changes: - pointed to type 'typedef RedChan= nelClient' changed at red_channel.h:136:1, as reported earlier - type of 'channel_handle_migrate_data_get= _serial_proc handle_migrate_data_get_serial' changed: - underlying type 'typedef uint64_t (Red= ChannelClient*, typedef uint32_t, void*)*' changed: - in pointed to type 'function type ty= pedef uint64_t (RedChannelClient*, typedef uint32_t, void*)': - parameter 1 of type 'RedChannelCli= ent*' has sub-type changes: - pointed to type 'typedef RedChan= nelClient' changed at red_channel.h:136:1, as reported earlier - type of 'ClientCbs RedChannel::client_cbs' cha= nged: - underlying type 'struct {channel_client_conn= ect_proc connect; channel_client_disconnect_proc disconnect; channel_client= _migrate_proc migrate;}' at red_channel.h:213:1 changed: - type size hasn't changed - 3 data member changes: - type of 'channel_client_connect_proc con= nect' changed: - underlying type 'void (RedChannel*, Re= dClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)*' changed: - in pointed to type 'function type vo= id (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_= t*)': - parameter 1 of type 'RedChannel*' = has sub-type changes: - in pointed to type 'typedef RedC= hannel' at red_channel.h:130:1: - underlying type 'struct RedCha= nnel' changed, as being reported - parameter 3 of type 'RedsStream*' = has sub-type changes: - pointed to type 'typedef RedsStr= eam' changed at red_channel.h:134:1, as reported earlier - type of 'channel_client_disconnect_proc = disconnect' changed: - underlying type 'void (RedChannelClien= t*)*' changed: - in pointed to type 'function type vo= id (RedChannelClient*)': - parameter 1 of type 'RedChannelCli= ent*' has sub-type changes: - pointed to type 'typedef RedChan= nelClient' changed at red_channel.h:136:1, as reported earlier - type of 'channel_client_migrate_proc mig= rate' changed: - underlying type 'void (RedChannelClien= t*)*' changed: - in pointed to type 'function type vo= id (RedChannelClient*)': - parameter 1 of type 'RedChannelCli= ent*' has sub-type changes: - pointed to type 'typedef RedChan= nelClient' changed at red_channel.h:136:1, as reported earlier + type of 'RedChannel MainChannel::base' changed, as r= eported earlier + type of 'RedsClientMonitorsConfig RedsState::client_monitors= _config' changed: + underlying type 'struct RedsClientMonitorsConfig' at reds-= private.h:120:1 changed: + type size hasn't changed + 1 data member change: + type of 'MainChannelClient* RedsClientMonitorsConfig::= mcc' changed: + pointed to type 'typedef MainChannelClient' changed = at red_channel.h:138:1, as reported earlier =20 [C] 'function int spice_server_add_interface(SpiceServer*, SpiceBaseIn= stance*)' at reds.c:3159:1 has some indirect sub-type changes: parameter 1 of type 'SpiceServer*' has sub-type changes: @@ -427,27 +731,7 @@ [C] 'function spice_image_compression_t spice_server_get_image_compres= sion(SpiceServer*)' at reds.c:3618:1 has some indirect sub-type changes: return type changed: typedef name changed from spice_image_compression_t to SpiceImageC= ompression at enums.h:197:1 - underlying type 'enum __anonymous_enum__2' at spice.h:471:1 change= d: - type name changed from '__anonymous_enum__2' to 'SpiceImageCompr= ession' - type size hasn't changed - 7 enumerator deletions: - '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0' - '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1' - '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_AUTO_GLZ' value '2' - '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_AUTO_LZ' value '3' - '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4' - '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5' - '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6' - 9 enumerator insertions: - 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value= '0' - 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1' - 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_AUTO_GLZ' valu= e '2' - 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_AUTO_LZ' value= '3' - 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_QUIC' value '4= ' - 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_GLZ' value '5' - 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_LZ' value '6' - 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_LZ4' value '7' - 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_ENUM_END' valu= e '8' + underlying type 'enum __anonymous_enum__2' changed at spice.h:471:= 1, as reported earlier parameter 1 of type 'SpiceServer*' has sub-type changes: pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as= reported earlier =20 @@ -466,6 +750,8 @@ [C] 'function int spice_server_init(SpiceServer*, SpiceCoreInterface*)= ' at reds.c:3407:1 has some indirect sub-type changes: parameter 1 of type 'SpiceServer*' has sub-type changes: pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as= reported earlier + parameter 2 of type 'SpiceCoreInterface*' has sub-type changes: + pointed to type 'typedef SpiceCoreInterface' changed at spice.h:49= :1, as reported earlier =20 [C] 'function int spice_server_is_server_mouse(SpiceServer*)' at reds.= c:3698:1 has some indirect sub-type changes: parameter 1 of type 'SpiceServer*' has sub-type changes: diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.1= 2.8-1.el7.x86_64-report-3.txt b/tests/data/test-diff-pkg/spice-server-0.12.= 4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt index 2ed87e92..aaf28bfe 100644 --- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.e= l7.x86_64-report-3.txt +++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.e= l7.x86_64-report-3.txt @@ -1,6 +1,6 @@ =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D changes of 'libspice-serv= er.so.1.8.0'=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -Leaf changes summary: 11 artifacts changed (7 filtered out) - Changed leaf types summary: 2 (7 filtered out) leaf types changed +Leaf changes summary: 11 artifacts changed (11 filtered out) + Changed leaf types summary: 2 (11 filtered out) leaf types changed Removed/Changed/Added functions summary: 1 Removed, 0 Changed, 8 Added f= unctions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added v= ariable =20 @@ -40,13 +40,167 @@ Leaf changes summary: 11 artifacts changed (7 filtered= out) 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_LZ' value '6' 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_LZ4' value '7' 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_ENUM_END' value '8' - 2 impacted interfaces: + 79 impacted interfaces: + function void spice_qxl_add_memslot(QXLInstance*, QXLDevMemSlot*) + function void spice_qxl_add_memslot_async(QXLInstance*, QXLDevMemSlo= t*, uint64_t) + function void spice_qxl_create_primary_surface(QXLInstance*, uint32_= t, QXLDevSurfaceCreate*) + function void spice_qxl_create_primary_surface_async(QXLInstance*, u= int32_t, QXLDevSurfaceCreate*, uint64_t) + function void spice_qxl_del_memslot(QXLInstance*, uint32_t, uint32_t= ) + function void spice_qxl_destroy_primary_surface(QXLInstance*, uint32= _t) + function void spice_qxl_destroy_primary_surface_async(QXLInstance*, = uint32_t, uint64_t) + function void spice_qxl_destroy_surface_async(QXLInstance*, uint32_t= , uint64_t) + function void spice_qxl_destroy_surface_wait(QXLInstance*, uint32_t) + function void spice_qxl_destroy_surfaces(QXLInstance*) + function void spice_qxl_destroy_surfaces_async(QXLInstance*, uint64_= t) + function void spice_qxl_driver_unload(QXLInstance*) + function void spice_qxl_flush_surfaces_async(QXLInstance*, uint64_t) + function void spice_qxl_loadvm_commands(QXLInstance*, QXLCommandExt*= , uint32_t) + function void spice_qxl_monitors_config_async(QXLInstance*, QXLPHYSI= CAL, int, uint64_t) + function void spice_qxl_oom(QXLInstance*) + function void spice_qxl_reset_cursor(QXLInstance*) + function void spice_qxl_reset_image_cache(QXLInstance*) + function void spice_qxl_reset_memslots(QXLInstance*) + function void spice_qxl_set_max_monitors(QXLInstance*, unsigned int) + function void spice_qxl_start(QXLInstance*) + function void spice_qxl_stop(QXLInstance*) + function void spice_qxl_update_area(QXLInstance*, uint32_t, QXLRect*= , QXLRect*, uint32_t, uint32_t) + function void spice_qxl_update_area_async(QXLInstance*, uint32_t, QX= LRect*, uint32_t, uint64_t) + function void spice_qxl_wakeup(QXLInstance*) + function int spice_server_add_client(SpiceServer*, int, int) + function int spice_server_add_interface(SpiceServer*, SpiceBaseInsta= nce*) + function int spice_server_add_renderer(SpiceServer*, const char*) + function int spice_server_add_ssl_client(SpiceServer*, int, int) + function void spice_server_char_device_wakeup(SpiceCharDeviceInstanc= e*) + function void spice_server_destroy(SpiceServer*) function spice_image_compression_t spice_server_get_image_compressio= n(SpiceServer*) + function int spice_server_get_num_clients(SpiceServer*) + function int spice_server_get_peer_info(SpiceServer*, sockaddr*, soc= klen_t*) + function int spice_server_get_sock_info(SpiceServer*, sockaddr*, soc= klen_t*) + function int spice_server_init(SpiceServer*, SpiceCoreInterface*) + function int spice_server_is_server_mouse(SpiceServer*) + function int spice_server_migrate_connect(SpiceServer*, const char*,= int, int, const char*) + function int spice_server_migrate_end(SpiceServer*, int) + function int spice_server_migrate_info(SpiceServer*, const char*, in= t, int, const char*) + function int spice_server_migrate_start(SpiceServer*) + function int spice_server_migrate_switch(SpiceServer*) + function SpiceServer* spice_server_new() + function void spice_server_playback_get_buffer(SpicePlaybackInstance= *, uint32_t**, uint32_t*) + function void spice_server_playback_put_samples(SpicePlaybackInstanc= e*, uint32_t*) + function void spice_server_playback_set_mute(SpicePlaybackInstance*,= uint8_t) + function void spice_server_playback_set_volume(SpicePlaybackInstance= *, uint8_t, uint16_t*) + function void spice_server_playback_start(SpicePlaybackInstance*) + function void spice_server_playback_stop(SpicePlaybackInstance*) + function void spice_server_port_event(SpiceCharDeviceInstance*, uint= 8_t) + function uint32_t spice_server_record_get_samples(SpiceRecordInstanc= e*, uint32_t*, uint32_t) + function void spice_server_record_set_mute(SpiceRecordInstance*, uin= t8_t) + function void spice_server_record_set_volume(SpiceRecordInstance*, u= int8_t, uint16_t*) + function void spice_server_record_start(SpiceRecordInstance*) + function void spice_server_record_stop(SpiceRecordInstance*) + function void spice_server_set_addr(SpiceServer*, const char*, int) + function int spice_server_set_agent_copypaste(SpiceServer*, int) + function int spice_server_set_agent_file_xfer(SpiceServer*, int) + function int spice_server_set_agent_mouse(SpiceServer*, int) + function int spice_server_set_channel_security(SpiceServer*, const c= har*, int) + function int spice_server_set_compat_version(SpiceServer*, spice_com= pat_version_t) + function int spice_server_set_exit_on_disconnect(SpiceServer*, int) function int spice_server_set_image_compression(SpiceServer*, spice_= image_compression_t) + function int spice_server_set_jpeg_compression(SpiceServer*, spice_w= an_compression_t) + function int spice_server_set_listen_socket_fd(SpiceServer*, int) + function void spice_server_set_name(SpiceServer*, const char*) + function int spice_server_set_noauth(SpiceServer*) + function int spice_server_set_playback_compression(SpiceServer*, int= ) + function int spice_server_set_port(SpiceServer*, int) + function int spice_server_set_sasl(SpiceServer*, int) + function int spice_server_set_sasl_appname(SpiceServer*, const char*= ) + function void spice_server_set_seamless_migration(SpiceServer*, int) + function int spice_server_set_streaming_video(SpiceServer*, int) + function int spice_server_set_ticket(SpiceServer*, const char*, int,= int, int) + function int spice_server_set_tls(SpiceServer*, int, const char*, co= nst char*, const char*, const char*, const char*, const char*) + function void spice_server_set_uuid(SpiceServer*, const uint8_t*) + function int spice_server_set_zlib_glz_compression(SpiceServer*, spi= ce_wan_compression_t) + function void spice_server_vm_start(SpiceServer*) + function void spice_server_vm_stop(SpiceServer*) 'typedef spice_image_compression_t at spice.h:479:1' changed: typedef name changed from spice_image_compression_t to SpiceImageCompr= ession at enums.h:197:1 - 2 impacted interfaces: + 79 impacted interfaces: + function void spice_qxl_add_memslot(QXLInstance*, QXLDevMemSlot*) + function void spice_qxl_add_memslot_async(QXLInstance*, QXLDevMemSlo= t*, uint64_t) + function void spice_qxl_create_primary_surface(QXLInstance*, uint32_= t, QXLDevSurfaceCreate*) + function void spice_qxl_create_primary_surface_async(QXLInstance*, u= int32_t, QXLDevSurfaceCreate*, uint64_t) + function void spice_qxl_del_memslot(QXLInstance*, uint32_t, uint32_t= ) + function void spice_qxl_destroy_primary_surface(QXLInstance*, uint32= _t) + function void spice_qxl_destroy_primary_surface_async(QXLInstance*, = uint32_t, uint64_t) + function void spice_qxl_destroy_surface_async(QXLInstance*, uint32_t= , uint64_t) + function void spice_qxl_destroy_surface_wait(QXLInstance*, uint32_t) + function void spice_qxl_destroy_surfaces(QXLInstance*) + function void spice_qxl_destroy_surfaces_async(QXLInstance*, uint64_= t) + function void spice_qxl_driver_unload(QXLInstance*) + function void spice_qxl_flush_surfaces_async(QXLInstance*, uint64_t) + function void spice_qxl_loadvm_commands(QXLInstance*, QXLCommandExt*= , uint32_t) + function void spice_qxl_monitors_config_async(QXLInstance*, QXLPHYSI= CAL, int, uint64_t) + function void spice_qxl_oom(QXLInstance*) + function void spice_qxl_reset_cursor(QXLInstance*) + function void spice_qxl_reset_image_cache(QXLInstance*) + function void spice_qxl_reset_memslots(QXLInstance*) + function void spice_qxl_set_max_monitors(QXLInstance*, unsigned int) + function void spice_qxl_start(QXLInstance*) + function void spice_qxl_stop(QXLInstance*) + function void spice_qxl_update_area(QXLInstance*, uint32_t, QXLRect*= , QXLRect*, uint32_t, uint32_t) + function void spice_qxl_update_area_async(QXLInstance*, uint32_t, QX= LRect*, uint32_t, uint64_t) + function void spice_qxl_wakeup(QXLInstance*) + function int spice_server_add_client(SpiceServer*, int, int) + function int spice_server_add_interface(SpiceServer*, SpiceBaseInsta= nce*) + function int spice_server_add_renderer(SpiceServer*, const char*) + function int spice_server_add_ssl_client(SpiceServer*, int, int) + function void spice_server_char_device_wakeup(SpiceCharDeviceInstanc= e*) + function void spice_server_destroy(SpiceServer*) function spice_image_compression_t spice_server_get_image_compressio= n(SpiceServer*) + function int spice_server_get_num_clients(SpiceServer*) + function int spice_server_get_peer_info(SpiceServer*, sockaddr*, soc= klen_t*) + function int spice_server_get_sock_info(SpiceServer*, sockaddr*, soc= klen_t*) + function int spice_server_init(SpiceServer*, SpiceCoreInterface*) + function int spice_server_is_server_mouse(SpiceServer*) + function int spice_server_migrate_connect(SpiceServer*, const char*,= int, int, const char*) + function int spice_server_migrate_end(SpiceServer*, int) + function int spice_server_migrate_info(SpiceServer*, const char*, in= t, int, const char*) + function int spice_server_migrate_start(SpiceServer*) + function int spice_server_migrate_switch(SpiceServer*) + function SpiceServer* spice_server_new() + function void spice_server_playback_get_buffer(SpicePlaybackInstance= *, uint32_t**, uint32_t*) + function void spice_server_playback_put_samples(SpicePlaybackInstanc= e*, uint32_t*) + function void spice_server_playback_set_mute(SpicePlaybackInstance*,= uint8_t) + function void spice_server_playback_set_volume(SpicePlaybackInstance= *, uint8_t, uint16_t*) + function void spice_server_playback_start(SpicePlaybackInstance*) + function void spice_server_playback_stop(SpicePlaybackInstance*) + function void spice_server_port_event(SpiceCharDeviceInstance*, uint= 8_t) + function uint32_t spice_server_record_get_samples(SpiceRecordInstanc= e*, uint32_t*, uint32_t) + function void spice_server_record_set_mute(SpiceRecordInstance*, uin= t8_t) + function void spice_server_record_set_volume(SpiceRecordInstance*, u= int8_t, uint16_t*) + function void spice_server_record_start(SpiceRecordInstance*) + function void spice_server_record_stop(SpiceRecordInstance*) + function void spice_server_set_addr(SpiceServer*, const char*, int) + function int spice_server_set_agent_copypaste(SpiceServer*, int) + function int spice_server_set_agent_file_xfer(SpiceServer*, int) + function int spice_server_set_agent_mouse(SpiceServer*, int) + function int spice_server_set_channel_security(SpiceServer*, const c= har*, int) + function int spice_server_set_compat_version(SpiceServer*, spice_com= pat_version_t) + function int spice_server_set_exit_on_disconnect(SpiceServer*, int) function int spice_server_set_image_compression(SpiceServer*, spice_= image_compression_t) + function int spice_server_set_jpeg_compression(SpiceServer*, spice_w= an_compression_t) + function int spice_server_set_listen_socket_fd(SpiceServer*, int) + function void spice_server_set_name(SpiceServer*, const char*) + function int spice_server_set_noauth(SpiceServer*) + function int spice_server_set_playback_compression(SpiceServer*, int= ) + function int spice_server_set_port(SpiceServer*, int) + function int spice_server_set_sasl(SpiceServer*, int) + function int spice_server_set_sasl_appname(SpiceServer*, const char*= ) + function void spice_server_set_seamless_migration(SpiceServer*, int) + function int spice_server_set_streaming_video(SpiceServer*, int) + function int spice_server_set_ticket(SpiceServer*, const char*, int,= int, int) + function int spice_server_set_tls(SpiceServer*, int, const char*, co= nst char*, const char*, const char*, const char*, const char*) + function void spice_server_set_uuid(SpiceServer*, const uint8_t*) + function int spice_server_set_zlib_glz_compression(SpiceServer*, spi= ce_wan_compression_t) + function void spice_server_vm_start(SpiceServer*) + function void spice_server_vm_stop(SpiceServer*) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D end of changes of 'libspi= ce-server.so.1.8.0'=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 --=20 2.27.0.111.gc72c7da667-goog