You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chromium/chromium-110-StorageQueue-d...

75 lines
2.9 KiB

From 200fc7c3ec95bc86f6afb55ca3c691e923463104 Mon Sep 17 00:00:00 2001
From: Leonid Baraz <lbaraz@chromium.org>
Date: Mon, 19 Dec 2022 21:46:04 +0000
Subject: [PATCH] GCC: fix usage of decltype in reporting::StorageQueue
GCC does not allow to use decltype for the default value of
a function parameter.
Bug: 819294
Change-Id: I7ebb255634375ce889933f8b67acb10f0e56ca8d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111548
Reviewed-by: Leonid Baraz <lbaraz@chromium.org>
Commit-Queue: Leonid Baraz <lbaraz@chromium.org>
Reviewed-by: Hong Xu <xuhong@google.com>
Cr-Commit-Position: refs/heads/main@{#1085129}
---
diff --git a/components/reporting/storage/storage_queue.cc b/components/reporting/storage/storage_queue.cc
index c546d55a..49e0f2c 100644
--- a/components/reporting/storage/storage_queue.cc
+++ b/components/reporting/storage/storage_queue.cc
@@ -203,7 +203,6 @@
encryption_module_(encryption_module),
compression_module_(compression_module) {
DETACH_FROM_SEQUENCE(storage_queue_sequence_checker_);
- DCHECK(write_contexts_queue_.empty());
}
StorageQueue::~StorageQueue() {
@@ -2133,9 +2132,7 @@
}
void StorageQueue::TestInjectErrorsForOperation(
- base::RepeatingCallback<
- Status(test::StorageQueueOperationKind operation_kind, int64_t)>
- handler) {
+ test::ErrorInjectionHandlerType handler) {
test_injection_handler_ = handler;
}
diff --git a/components/reporting/storage/storage_queue.h b/components/reporting/storage/storage_queue.h
index 39edd8b..04d5f9f 100644
--- a/components/reporting/storage/storage_queue.h
+++ b/components/reporting/storage/storage_queue.h
@@ -52,6 +52,9 @@
kWriteLowDiskSpace,
};
+using ErrorInjectionHandlerType =
+ base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>;
+
} // namespace test
// Storage queue represents single queue of data to be collected and stored
@@ -142,8 +145,7 @@
// can be returned as a resulting operation status too.
// If `handler` is null, error injections is disabled.
void TestInjectErrorsForOperation(
- base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>
- handler = decltype(handler)());
+ test::ErrorInjectionHandlerType handler = base::NullCallback());
// Access queue options.
const QueueOptions& options() const { return options_; }
@@ -492,8 +494,7 @@
// Test only: records callback to be invoked. It will be called with operation
// kind and seq id, and will return Status (non-OK status indicates the
// failure to be injected). In production code must be null.
- base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>
- test_injection_handler_;
+ test::ErrorInjectionHandlerType test_injection_handler_{base::NullCallback()};
// Weak pointer factory (must be last member in class).
base::WeakPtrFactory<StorageQueue> weakptr_factory_{this};