Ref count Timer implementation

[ Merge of http://go/wvgerrit/78763 ]

The android timer instance is held by a regular pointer rather
than reference counted as all classes that derive from RefBase
should be. This could result in a double deallocation, if the
timer is ever passed to a strong pointer.

Bug: 79364026
Test: WV unit/integration tests. GtsMediaTestCases. Play movies
      playback tests.

Change-Id: I01f622bc045e1012f2240b3775a6d121f9415463
This commit is contained in:
Rahul Frias
2019-05-12 02:15:12 -07:00
parent 5ee5d00514
commit 4d917e3ee8
2 changed files with 3 additions and 4 deletions

View File

@@ -9,6 +9,8 @@
#include <stdint.h>
#include "utils/StrongPointer.h"
#include "disallow_copy_and_assign.h"
namespace wvcdm {
@@ -45,7 +47,7 @@ class Timer {
bool IsRunning();
private:
Impl *impl_;
android::sp<Impl> impl_;
CORE_DISALLOW_COPY_AND_ASSIGN(Timer);
};

View File

@@ -81,9 +81,6 @@ Timer::Timer() : impl_(new Timer::Impl()) {
Timer::~Timer() {
if (IsRunning())
Stop();
delete impl_;
impl_ = NULL;
}
bool Timer::Start(TimerHandler *handler, uint32_t time_in_secs) {