| Index: content/renderer/device_orientation_dispatcher.cc | 
| diff --git a/content/renderer/device_orientation_dispatcher.cc b/content/renderer/device_orientation_dispatcher.cc | 
| index a0a66a460a6825d58213559995d34186ce117430..42ce18dfa9c8ace26240343509550c180eaf772d 100644 | 
| --- a/content/renderer/device_orientation_dispatcher.cc | 
| +++ b/content/renderer/device_orientation_dispatcher.cc | 
| @@ -48,10 +48,7 @@ void DeviceOrientationDispatcher::stopUpdating() { | 
|  | 
| WebKit::WebDeviceOrientation DeviceOrientationDispatcher::lastOrientation() | 
| const { | 
| -  if (!last_orientation_.get()) | 
| -    return WebKit::WebDeviceOrientation::nullOrientation(); | 
| - | 
| -  return *last_orientation_; | 
| +   return last_orientation_; | 
| } | 
|  | 
| namespace { | 
| @@ -80,17 +77,17 @@ bool OrientationsEqual(const DeviceOrientationMsg_Updated_Params& a, | 
|  | 
| void DeviceOrientationDispatcher::OnDeviceOrientationUpdated( | 
| const DeviceOrientationMsg_Updated_Params& p) { | 
| -  if (last_orientation_.get() && OrientationsEqual(p, last_orientation_.get())) | 
| +  if (!last_orientation_.isNull() && OrientationsEqual(p, &last_orientation_)) | 
| return; | 
|  | 
| -  last_orientation_.reset(new WebKit::WebDeviceOrientation(p.can_provide_alpha, | 
| -                                                       p.alpha, | 
| -                                                       p.can_provide_beta, | 
| -                                                       p.beta, | 
| -                                                       p.can_provide_gamma, | 
| -                                                       p.gamma, | 
| -                                                       p.can_provide_absolute, | 
| -                                                       p.absolute)); | 
| - | 
| -  controller_->didChangeDeviceOrientation(*last_orientation_); | 
| +  last_orientation_.setNull(false); | 
| +  if (p.can_provide_alpha) | 
| +    last_orientation_.setAlpha(p.alpha); | 
| +  if (p.can_provide_beta) | 
| +    last_orientation_.setBeta(p.beta); | 
| +  if (p.can_provide_gamma) | 
| +    last_orientation_.setGamma(p.gamma); | 
| +  if (p.can_provide_absolute) | 
| +    last_orientation_.setAbsolute(p.absolute); | 
| +  controller_->didChangeDeviceOrientation(last_orientation_); | 
| } | 
|  |