Mercurial > hg > graal-jvmci-8
comparison src/share/vm/services/management.cpp @ 11986:c01913206da5
8014294: Assert in ThreadTimesClosure::do_thread() due to use of naked oop instead of handle
Summary: Assert in ThreadTimesClosure::do_thread() due to use of naked oop instead of handle
Reviewed-by: coleenp, sspitsyn
author | ctornqvi |
---|---|
date | Thu, 01 Aug 2013 22:20:00 +0200 |
parents | 71963b3f802a |
children | a70566600baf |
comparison
equal
deleted
inserted
replaced
11985:9bd314787fad | 11986:c01913206da5 |
---|---|
1829 | 1829 |
1830 class ThreadTimesClosure: public ThreadClosure { | 1830 class ThreadTimesClosure: public ThreadClosure { |
1831 private: | 1831 private: |
1832 objArrayHandle _names_strings; | 1832 objArrayHandle _names_strings; |
1833 char **_names_chars; | 1833 char **_names_chars; |
1834 typeArrayOop _times; | 1834 typeArrayHandle _times; |
1835 int _names_len; | 1835 int _names_len; |
1836 int _times_len; | 1836 int _times_len; |
1837 int _count; | 1837 int _count; |
1838 | 1838 |
1839 public: | 1839 public: |
1840 ThreadTimesClosure(objArrayHandle names, typeArrayOop times); | 1840 ThreadTimesClosure(objArrayHandle names, typeArrayHandle times); |
1841 ~ThreadTimesClosure(); | 1841 ~ThreadTimesClosure(); |
1842 virtual void do_thread(Thread* thread); | 1842 virtual void do_thread(Thread* thread); |
1843 void do_unlocked(); | 1843 void do_unlocked(); |
1844 int count() { return _count; } | 1844 int count() { return _count; } |
1845 }; | 1845 }; |
1846 | 1846 |
1847 ThreadTimesClosure::ThreadTimesClosure(objArrayHandle names, | 1847 ThreadTimesClosure::ThreadTimesClosure(objArrayHandle names, |
1848 typeArrayOop times) { | 1848 typeArrayHandle times) { |
1849 assert(names() != NULL, "names was NULL"); | 1849 assert(names() != NULL, "names was NULL"); |
1850 assert(times != NULL, "times was NULL"); | 1850 assert(times() != NULL, "times was NULL"); |
1851 _names_strings = names; | 1851 _names_strings = names; |
1852 _names_len = names->length(); | 1852 _names_len = names->length(); |
1853 _names_chars = NEW_C_HEAP_ARRAY(char*, _names_len, mtInternal); | 1853 _names_chars = NEW_C_HEAP_ARRAY(char*, _names_len, mtInternal); |
1854 _times = times; | 1854 _times = times; |
1855 _times_len = times->length(); | 1855 _times_len = times->length(); |
1923 } | 1923 } |
1924 | 1924 |
1925 typeArrayOop ta = typeArrayOop(JNIHandles::resolve_non_null(times)); | 1925 typeArrayOop ta = typeArrayOop(JNIHandles::resolve_non_null(times)); |
1926 typeArrayHandle times_ah(THREAD, ta); | 1926 typeArrayHandle times_ah(THREAD, ta); |
1927 | 1927 |
1928 ThreadTimesClosure ttc(names_ah, times_ah()); | 1928 ThreadTimesClosure ttc(names_ah, times_ah); |
1929 { | 1929 { |
1930 MutexLockerEx ml(Threads_lock); | 1930 MutexLockerEx ml(Threads_lock); |
1931 Threads::threads_do(&ttc); | 1931 Threads::threads_do(&ttc); |
1932 } | 1932 } |
1933 ttc.do_unlocked(); | 1933 ttc.do_unlocked(); |