| Index: webrtc/p2p/base/stun.h | 
| diff --git a/webrtc/p2p/base/stun.h b/webrtc/p2p/base/stun.h | 
| index 532fe5bec9e947f127972bc2f4f27c0b4ca3563d..ab200687f5ba4d8855730ade4dde2786c0354124 100644 | 
| --- a/webrtc/p2p/base/stun.h | 
| +++ b/webrtc/p2p/base/stun.h | 
| @@ -159,8 +159,7 @@ class StunMessage { | 
| const StunUInt16ListAttribute* GetUnknownAttributes() const; | 
|  | 
| // Takes ownership of the specified attribute and adds it to the message. | 
| -  // TODO(zstein): Take a unique_ptr instead of a raw pointer. | 
| -  void AddAttribute(StunAttribute* attr); | 
| +  void AddAttribute(std::unique_ptr<StunAttribute> attr); | 
|  | 
| // Validates that a raw STUN message has a correct MESSAGE-INTEGRITY value. | 
| // This can't currently be done on a StunMessage, since it is affected by | 
| @@ -233,13 +232,15 @@ class StunAttribute { | 
| StunMessage* owner); | 
| // TODO: Allow these create functions to take parameters, to reduce | 
| // the amount of work callers need to do to initialize attributes. | 
| -  static StunAddressAttribute* CreateAddress(uint16_t type); | 
| -  static StunXorAddressAttribute* CreateXorAddress(uint16_t type); | 
| -  static StunUInt32Attribute* CreateUInt32(uint16_t type); | 
| -  static StunUInt64Attribute* CreateUInt64(uint16_t type); | 
| -  static StunByteStringAttribute* CreateByteString(uint16_t type); | 
| -  static StunErrorCodeAttribute* CreateErrorCode(); | 
| -  static StunUInt16ListAttribute* CreateUnknownAttributes(); | 
| +  static std::unique_ptr<StunAddressAttribute> CreateAddress(uint16_t type); | 
| +  static std::unique_ptr<StunXorAddressAttribute> CreateXorAddress( | 
| +      uint16_t type); | 
| +  static std::unique_ptr<StunUInt32Attribute> CreateUInt32(uint16_t type); | 
| +  static std::unique_ptr<StunUInt64Attribute> CreateUInt64(uint16_t type); | 
| +  static std::unique_ptr<StunByteStringAttribute> CreateByteString( | 
| +      uint16_t type); | 
| +  static std::unique_ptr<StunErrorCodeAttribute> CreateErrorCode(); | 
| +  static std::unique_ptr<StunUInt16ListAttribute> CreateUnknownAttributes(); | 
|  | 
| protected: | 
| StunAttribute(uint16_t type, uint16_t length); | 
| @@ -412,7 +413,7 @@ class StunByteStringAttribute : public StunAttribute { | 
| // Implements STUN attributes that record an error code. | 
| class StunErrorCodeAttribute : public StunAttribute { | 
| public: | 
| -  static const uint16_t MIN_SIZE = 4; | 
| +  static const uint16_t MIN_SIZE; | 
| StunErrorCodeAttribute(uint16_t type, int code, const std::string& reason); | 
| StunErrorCodeAttribute(uint16_t type, uint16_t length); | 
| ~StunErrorCodeAttribute(); | 
|  |