#include "base/arena_object.h"
#include "base/bit_field.h"
#include "base/enums.h"
-#include "compiled_method.h"
-#include "driver/compiler_options.h"
#include "globals.h"
#include "graph_visualizer.h"
#include "locations.h"
class Assembler;
class CodeGenerator;
class CompilerDriver;
+class CompilerOptions;
class LinkerPatch;
class ParallelMoveResolver;
#include "arch/mips/instruction_set_features_mips.h"
#include "art_method.h"
#include "code_generator_utils.h"
+#include "compiled_method.h"
#include "entrypoints/quick/quick_entrypoints.h"
#include "entrypoints/quick/quick_entrypoints_enum.h"
#include "gc/accounting/card_table.h"
#include "arch/instruction_set.h"
#include "cfi_test.h"
+#include "driver/compiler_options.h"
#include "gtest/gtest.h"
#include "optimizing/code_generator.h"
#include "optimizing/optimizing_unit_test.h"
#include "base/enums.h"
#include "class_linker.h"
#include "code_generator.h"
+#include "driver/compiler_options.h"
#include "driver/dex_compilation_unit.h"
#include "utils/dex_cache_arrays_layout-inl.h"
#include "driver/compiler_driver.h"
#include "x86_memory_gen.h"
#include "code_generator.h"
+#include "driver/compiler_options.h"
namespace art {
namespace x86 {
* limitations under the License.
*/
+#include <math.h>
+#include <string.h>
+
#include "entrypoints/jni/jni_entrypoints.h"
#include "entrypoints/quick/quick_alloc_entrypoints.h"
#include "entrypoints/quick/quick_default_externs.h"
* limitations under the License.
*/
+#include <math.h>
+#include <string.h>
+
#include "entrypoints/jni/jni_entrypoints.h"
#include "entrypoints/quick/quick_alloc_entrypoints.h"
#include "entrypoints/quick/quick_default_externs.h"
* limitations under the License.
*/
+#include <string.h>
+
#include "atomic.h"
#include "entrypoints/jni/jni_entrypoints.h"
#include "entrypoints/quick/quick_alloc_entrypoints.h"
* limitations under the License.
*/
+#include <string.h>
+
#include "atomic.h"
#include "entrypoints/jni/jni_entrypoints.h"
#include "entrypoints/quick/quick_alloc_entrypoints.h"
* limitations under the License.
*/
+#include <math.h>
+
#include "entrypoints/jni/jni_entrypoints.h"
#include "entrypoints/quick/quick_alloc_entrypoints.h"
#include "entrypoints/quick/quick_default_externs.h"
* limitations under the License.
*/
+#include <math.h>
+
#include "entrypoints/jni/jni_entrypoints.h"
#include "entrypoints/quick/quick_alloc_entrypoints.h"
#include "entrypoints/quick/quick_default_externs.h"
#include "modifiers.h"
#include "mirror/object.h"
#include "read_barrier_option.h"
-#include "stack.h"
#include "utils.h"
namespace art {
#include "dex_file_verifier.h"
#include "globals.h"
#include "handle_scope-inl.h"
+#include "jvalue.h"
#include "leb128.h"
#include "mirror/field.h"
#include "mirror/method.h"
{'0', '3', '8', '\0'}
};
+struct DexFile::AnnotationValue {
+ JValue value_;
+ uint8_t type_;
+};
+
bool DexFile::GetChecksum(const char* filename, uint32_t* checksum, std::string* error_msg) {
CHECK(checksum != nullptr);
uint32_t magic;
#include <memory>
#include <string>
-#include <unordered_map>
#include <vector>
#include "base/logging.h"
#include "globals.h"
#include "invoke_type.h"
#include "jni.h"
-#include "jvalue.h"
#include "mirror/object_array.h"
#include "modifiers.h"
#include "utf.h"
DISALLOW_COPY_AND_ASSIGN(AnnotationItem);
};
- struct AnnotationValue {
- JValue value_;
- uint8_t type_;
- };
-
enum AnnotationResultStyle { // private
kAllObjects,
kPrimitivesOrObjects,
mirror::ObjectArray<mirror::Object>* ProcessAnnotationSetRefList(Handle<mirror::Class> klass,
const AnnotationSetRefList* set_ref_list, uint32_t size) const
REQUIRES_SHARED(Locks::mutator_lock_);
- bool ProcessAnnotationValue(Handle<mirror::Class> klass, const uint8_t** annotation_ptr,
- AnnotationValue* annotation_value, Handle<mirror::Class> return_class,
- DexFile::AnnotationResultStyle result_style) const
- REQUIRES_SHARED(Locks::mutator_lock_);
mirror::Object* ProcessEncodedAnnotation(Handle<mirror::Class> klass,
const uint8_t** annotation) const
REQUIRES_SHARED(Locks::mutator_lock_);
// whether the string contains the separator character.
static bool IsMultiDexLocation(const char* location);
+ struct AnnotationValue;
+
+ bool ProcessAnnotationValue(Handle<mirror::Class> klass, const uint8_t** annotation_ptr,
+ AnnotationValue* annotation_value, Handle<mirror::Class> return_class,
+ DexFile::AnnotationResultStyle result_style) const
+ REQUIRES_SHARED(Locks::mutator_lock_);
// The base address of the memory mapping.
const uint8_t* const begin_;
#include "mirror/object_array-inl.h"
#include "mirror/object-inl.h"
#include "quick_exception_handler.h"
-#include "stack.h"
#include "thread.h"
#include "verifier/method_verifier.h"
#include "base/casts.h"
#include "base/logging.h"
#include "base/macros.h"
+#include "base/mutex.h"
#include "base/value_object.h"
-#include "stack.h"
+#include "jni.h"
+#include "stack_reference.h"
namespace art {
#include "base/enums.h"
#include "base/logging.h"
#include "base/macros.h"
+#include "base/mutex.h"
#include "handle.h"
-#include "stack.h"
+#include "stack_reference.h"
#include "verify_object.h"
namespace art {
#include "art_method.h"
#include "imtable.h"
+#include "read_barrier-inl.h"
namespace art {
class ArtMethod;
struct RuntimeArgumentMap;
+union JValue;
namespace jit {
#include "scoped_fast_native_object_access.h"
#include "ScopedLocalRef.h"
#include "ScopedPrimitiveArray.h"
-#include "stack.h"
#include "thread_list.h"
namespace art {
#include "mirror/class_loader.h"
#include "mirror/throwable.h"
#include "oat_quick_method_header.h"
+#include "stack.h"
#include "stack_map.h"
#include "verifier/method_verifier.h"
#include "base/logging.h"
#include "base/macros.h"
#include "base/mutex.h"
-#include "stack.h" // StackReference
+#include "stack_reference.h"
namespace art {
} // namespace mirror
class ArtMethod;
class Context;
+class OatQuickMethodHeader;
class Thread;
class ShadowFrame;
+class StackVisitor;
// Manages exception delivery for Quick backend.
class QuickExceptionHandler {
#include "mirror/object_array-inl.h"
#include "nth_caller_visitor.h"
#include "scoped_thread_state_change.h"
-#include "stack.h"
+#include "stack_reference.h"
#include "well_known_classes.h"
namespace art {
#include "base/mutex.h"
#include "dex_file.h"
#include "gc_root.h"
-#include "mirror/object_reference.h"
#include "quick/quick_method_frame_info.h"
#include "read_barrier.h"
+#include "stack_reference.h"
#include "verify_object.h"
namespace art {
class ShadowFrame;
class StackVisitor;
class Thread;
+union JValue;
// The kind of vreg being accessed in calls to Set/GetVReg.
enum VRegKind {
};
std::ostream& operator<<(std::ostream& os, const VRegKind& rhs);
-// A reference from the shadow stack to a MirrorType object within the Java heap.
-template<class MirrorType>
-class MANAGED StackReference : public mirror::CompressedReference<MirrorType> {
-};
-
// Forward declaration. Just calls the destructor.
struct ShadowFrameDeleter;
using ShadowFrameAllocaUniquePtr = std::unique_ptr<ShadowFrame, ShadowFrameDeleter>;
--- /dev/null
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ART_RUNTIME_STACK_REFERENCE_H_
+#define ART_RUNTIME_STACK_REFERENCE_H_
+
+#include "base/macros.h"
+#include "mirror/object_reference.h"
+
+namespace art {
+
+// A reference from the shadow stack to a MirrorType object within the Java heap.
+template<class MirrorType>
+class PACKED(4) StackReference : public mirror::CompressedReference<MirrorType> {
+};
+
+} // namespace art
+
+#endif // ART_RUNTIME_STACK_REFERENCE_H_
#define ART_RUNTIME_UTF_H_
#include "base/macros.h"
-#include "base/mutex.h"
#include <stddef.h>
#include <stdint.h>
*/
namespace art {
-namespace mirror {
- template<class T> class PrimitiveArray;
- typedef PrimitiveArray<uint16_t> CharArray;
-} // namespace mirror
-
/*
* Returns the number of UTF-16 characters in the given modified UTF-8 string.
*/
/*
* The java.lang.String hashCode() algorithm.
*/
-int32_t ComputeUtf16Hash(mirror::CharArray* chars, int32_t offset, size_t char_count)
- REQUIRES_SHARED(Locks::mutator_lock_);
-
template<typename MemoryType>
int32_t ComputeUtf16Hash(const MemoryType* chars, size_t char_count) {
uint32_t hash = 0;
namespace art {
namespace mirror {
class Class;
+class ClassLoader;
} // namespace mirror
class ArenaBitVector;
#include "jit/jit.h"
#include "jit/jit_code_cache.h"
#include "mirror/class-inl.h"
-#include "nth_caller_visitor.h"
#include "oat_quick_method_header.h"
#include "runtime.h"
#include "scoped_thread_state_change.h"
#include "ScopedUtfChars.h"
-#include "stack.h"
#include "thread-inl.h"
namespace art {