1e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light/*
2e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * Copyright (C) 2017 The Android Open Source Project
3e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light *
4e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * Licensed under the Apache License, Version 2.0 (the "License");
5e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * you may not use this file except in compliance with the License.
6e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * You may obtain a copy of the License at
7e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light *
8e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light *      http://www.apache.org/licenses/LICENSE-2.0
9e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light *
10e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * Unless required by applicable law or agreed to in writing, software
11e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * distributed under the License is distributed on an "AS IS" BASIS,
12e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * See the License for the specific language governing permissions and
14e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * limitations under the License.
15e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light */
16e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light
17e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include <pthread.h>
18e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light
19e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include <cstdio>
20e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include <iostream>
21e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include <vector>
22e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light
23e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "android-base/logging.h"
24e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "jni.h"
25e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "jvmti.h"
26e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light
27e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "scoped_local_ref.h"
28e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "scoped_primitive_array.h"
29e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light
30e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light// Test infrastructure
31e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "jvmti_helper.h"
32e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "test_env.h"
33e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light
34e814f9d09c0fb1b678e610780d11ce3577db3599Alex Lightnamespace art {
35e814f9d09c0fb1b678e610780d11ce3577db3599Alex Lightnamespace Test1926FramePopMissed {
36e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light
37e814f9d09c0fb1b678e610780d11ce3577db3599Alex Lightextern "C" JNIEXPORT void JNICALL Java_art_Test1926_disableFramePop(
38e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light    JNIEnv* env, jclass, jthread thr) {
39e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light  JvmtiErrorToException(env,
40e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light                        jvmti_env,
41e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light                        jvmti_env->SetEventNotificationMode(
42e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light                            JVMTI_DISABLE, JVMTI_EVENT_FRAME_POP, thr));
43e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light}
44e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light
45e814f9d09c0fb1b678e610780d11ce3577db3599Alex Lightextern "C" JNIEXPORT void JNICALL Java_art_Test1926_reenableFramePop(
46e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light    JNIEnv* env, jclass, jthread thr) {
47e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light  JvmtiErrorToException(env,
48e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light                        jvmti_env,
49e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light                        jvmti_env->SetEventNotificationMode(
50e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light                            JVMTI_ENABLE, JVMTI_EVENT_FRAME_POP, thr));
51e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light}
52e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light
53e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light}  // namespace Test1926FramePopMissed
54e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light}  // namespace art
55e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light
56