// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/memory/scoped_native_library.h" namespace base { ScopedNativeLibrary::ScopedNativeLibrary() : library_(NULL) { } ScopedNativeLibrary::ScopedNativeLibrary(NativeLibrary library) : library_(library) { } ScopedNativeLibrary::ScopedNativeLibrary(const FilePath& library_path) { library_ = base::LoadNativeLibrary(library_path, NULL); } ScopedNativeLibrary::~ScopedNativeLibrary() { if (library_) base::UnloadNativeLibrary(library_); } void* ScopedNativeLibrary::GetFunctionPointer( const char* function_name) const { if (!library_) return NULL; return base::GetFunctionPointerFromNativeLibrary(library_, function_name); } void ScopedNativeLibrary::Reset(NativeLibrary library) { if (library_) base::UnloadNativeLibrary(library_); library_ = library; } NativeLibrary ScopedNativeLibrary::Release() { NativeLibrary result = library_; library_ = NULL; return result; } } // namespace base