15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/jni_registrar.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/debug/trace_event.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/jni_android.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace base {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace android {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool RegisterNativeMethods(JNIEnv* env,
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           const RegistrationMethod* method,
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           size_t count) {
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  TRACE_EVENT0("startup", "base_android::RegisterNativeMethods")
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const RegistrationMethod* end = method + count;
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  while (method != end) {
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!method->func(env)) {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DLOG(ERROR) << method->name << " failed registration!";
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return false;
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    method++;
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace android
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace base
31