aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRatchanan Srirattanamet <ratchanan@ubports.com>2023-11-29 00:42:50 +0700
committerRatchanan Srirattanamet <ratchanan@ubports.com>2023-11-29 01:42:23 +0700
commit41c2b5c21de5a3774f0bbb54de3999eaccc7de70 (patch)
tree8e846264c36e02681cef23cc0bd7e31656546ae8
parentb153ce4da15f9ff3dc7f1bd5bd798a402d444f4b (diff)
downloadayatana-indicator-sound-personal/peat-psuwit/protected-superclass.tar.gz
ayatana-indicator-sound-personal/peat-psuwit/protected-superclass.tar.bz2
ayatana-indicator-sound-personal/peat-psuwit/protected-superclass.zip
src, tests: fix -Wint-to-pointer-cast and a chance of test crashpersonal/peat-psuwit/protected-superclass
Turns the constructor of `VolumeControl` and `VolumeWarning` from `internal` to `protected`. This makes Vala emits C declaration of constructors, which is required by the test's mocks extending these classes, in the external header. Without them, the mocks' C code would then consider them "implicitly declared", and will assume they return `int` instead of a pointer. If the returned address happened to be higher than `INT_MAX`, the code will consider the returned address negative and sign-extend it when casting to a pointer, corrupting it. As for "unprivating" these constructors, this is an internal static library anyway. No libraries or headers are installed from this package. This change is invisible from outside.
-rw-r--r--src/volume-control.vala2
-rw-r--r--src/volume-warning.vala2
-rw-r--r--tests/CMakeLists.txt4
3 files changed, 4 insertions, 4 deletions
diff --git a/src/volume-control.vala b/src/volume-control.vala
index f4244b4..a8ba3c7 100644
--- a/src/volume-control.vala
+++ b/src/volume-control.vala
@@ -54,7 +54,7 @@ public abstract class VolumeControl : Object
protected IndicatorSound.Options _options = null;
- internal VolumeControl(IndicatorSound.Options options) {
+ protected VolumeControl(IndicatorSound.Options options) {
_options = options;
}
diff --git a/src/volume-warning.vala b/src/volume-warning.vala
index b43e90f..6cfab41 100644
--- a/src/volume-warning.vala
+++ b/src/volume-warning.vala
@@ -44,7 +44,7 @@ public abstract class VolumeWarning : Object
}
}
- internal VolumeWarning (IndicatorSound.Options options) {
+ protected VolumeWarning (IndicatorSound.Options options) {
_options = options;
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 6776514..39711ed 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -83,8 +83,8 @@ vala_init(vala-mocks
set_source_files_properties(media-player-mock.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-unknown-warning-option -Wno-incompatible-pointer-types -Wno-discarded-qualifiers")
set_source_files_properties(media-player-list-mock.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-pointer-types -Wno-unused-variable")
set_source_files_properties(options-mock.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-pointer-types -Wno-unused-variable")
-set_source_files_properties(volume-control-mock.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-pointer-types -Wno-int-to-pointer-cast -Wno-implicit-function-declaration")
-set_source_files_properties(volume-warning-mock.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-pointer-types -Wno-unused-variable -Wno-int-to-pointer-cast -Wno-implicit-function-declaration")
+set_source_files_properties(volume-control-mock.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-pointer-types")
+set_source_files_properties(volume-warning-mock.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-pointer-types -Wno-unused-variable")
vala_add(vala-mocks
media-player-mock.vala