Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1238)

Unified Diff: device/u2f/u2f_message.h

Issue 2766723003: Use unique pointers for U2fPacket and U2fMessage (Closed)
Patch Set: Change fuzzer to use the new unique_ptr constructor Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/u2f/u2f_hid_device.cc ('k') | device/u2f/u2f_message.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/u2f/u2f_message.h
diff --git a/device/u2f/u2f_message.h b/device/u2f/u2f_message.h
index 125099f0c9c27b10e71dd5e6f3e5fa87e6b7ab4b..17e8c2d944b516223627a68e3b7fe5aaf268ea0a 100644
--- a/device/u2f/u2f_message.h
+++ b/device/u2f/u2f_message.h
@@ -21,7 +21,7 @@ namespace device {
// http://fidoalliance.org/specs/u2f-specs-1.0-bt-nfc-id-amendment/fido-u2f-hid-protocol.html
// A U2fMessage object represents a list of U2fPackets. Basic information
// about the message are available through class methods.
-class U2fMessage : public base::RefCountedThreadSafe<U2fMessage> {
+class U2fMessage {
public:
enum class Type : uint8_t {
CMD_PING = 0x81,
@@ -31,11 +31,15 @@ class U2fMessage : public base::RefCountedThreadSafe<U2fMessage> {
CMD_ERROR = 0xbf,
};
- static scoped_refptr<U2fMessage> Create(uint32_t channel_id,
- Type type,
- const std::vector<uint8_t>& data);
+ U2fMessage(uint32_t channel_id, Type type, const std::vector<uint8_t>& data);
+ U2fMessage(std::unique_ptr<U2fInitPacket> init_packet, size_t remaining_size);
+ ~U2fMessage();
+
+ static std::unique_ptr<U2fMessage> Create(uint32_t channel_id,
+ Type type,
+ const std::vector<uint8_t>& data);
// Reconstruct a message from serialized message data
- static scoped_refptr<U2fMessage> CreateFromSerializedData(
+ static std::unique_ptr<U2fMessage> CreateFromSerializedData(
scoped_refptr<net::IOBufferWithSize> buf);
// Pop front of queue with next packet
scoped_refptr<net::IOBufferWithSize> PopNextPacket();
@@ -48,14 +52,10 @@ class U2fMessage : public base::RefCountedThreadSafe<U2fMessage> {
uint32_t channel_id() { return channel_id_; }
// Message construction complete
bool MessageComplete();
- std::list<scoped_refptr<U2fPacket>>::const_iterator begin();
- std::list<scoped_refptr<U2fPacket>>::const_iterator end();
-
- protected:
- virtual ~U2fMessage();
+ std::list<std::unique_ptr<U2fPacket>>::const_iterator begin();
+ std::list<std::unique_ptr<U2fPacket>>::const_iterator end();
private:
- friend class base::RefCountedThreadSafe<U2fMessage>;
FRIEND_TEST_ALL_PREFIXES(U2fMessageTest, TestMaxLengthPacketConstructors);
FRIEND_TEST_ALL_PREFIXES(U2fMessageTest, TestMessagePartitoning);
FRIEND_TEST_ALL_PREFIXES(U2fMessageTest, TestDeconstruct);
@@ -73,10 +73,7 @@ class U2fMessage : public base::RefCountedThreadSafe<U2fMessage> {
// Maximum payload length therefore is 64-7 + 128 * (64-5) = 7609 bytes
static constexpr size_t kMaxMessageSize = 7609;
- U2fMessage(uint32_t channel_id, Type type, const std::vector<uint8_t>& data);
- U2fMessage(scoped_refptr<U2fInitPacket> init_packet, size_t remaining_size);
-
- std::list<scoped_refptr<U2fPacket>> packets_;
+ std::list<std::unique_ptr<U2fPacket>> packets_;
size_t remaining_size_;
uint32_t channel_id_;
};
« no previous file with comments | « device/u2f/u2f_hid_device.cc ('k') | device/u2f/u2f_message.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698