harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Ozhdikhin (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-1911) [drlvm][opt] failed assert in class_get_addr_of_constant
Date Wed, 01 Nov 2006 14:05:18 GMT
    [ http://issues.apache.org/jira/browse/HARMONY-1911?page=comments#action_12446250 ] 
            
Pavel Ozhdikhin commented on HARMONY-1911:
------------------------------------------

The patch is good and fixes the issue - the fixed method was not intended to work with string
values.

However, I don't think we should rename getNumericValue() to getArrayInitValue() because:

1. The method is general for reading any numeric value from the bytecode
2. It has nothing special for the arrays
3. Some time we might want to add getStringValue() method to optimize loading string arrays

I think we should revert the method's name in the patch.


> [drlvm][opt] failed assert in class_get_addr_of_constant
> --------------------------------------------------------
>
>                 Key: HARMONY-1911
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1911
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: SUSE9
>            Reporter: Alexey Varlamov
>         Attachments: 0001-array-initializers-pattern-matching-improved.txt, Harmony1911.java
>
>
> To reproduce:
> ./java -Xem:opt -cp $classlib/modules/swing/bin/test:junit.jar:$classlib/deploy/build/test/support.jar
junit.textui.TestRunner javax.swing.colorchooser.AbstractColorChooserPanelTest
> java: /export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/src/init/vm.cpp:151:
const void* class_get_addr_of_constant(Class*, unsigned int): Assertion `(cp[0].tags[cp_index]
& 0x0F) != CONSTANT_String' failed.
> SIGABRT in VM code.
> Stack trace:
> 	1: ?? (??:-1)
> 	2: abort (??:-1)
> 	3: __assert_fail (??:-1)
> 	4: class_get_addr_of_constant(Class*, unsigned int) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/src/init/vm.cpp:153)
> 	5: class_get_const_addr (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/src/class_support/C_Interface.cpp:869)
> 	6: Jitrino::DrlVMCompilationInterface::getConstantValue(Jitrino::MethodDesc*, unsigned
int) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/vm/drl/DrlVMInterface.cpp:894)
> 	7: .L1127 (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/translator/java/JavaByteCodeTranslator.cpp:3430)
> 	8: Jitrino::JavaByteCodeTranslator::checkForArrayInitializer(Jitrino::Opnd*, unsigned
char const*, unsigned int, unsigned int) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/translator/java/JavaByteCodeTranslator.cpp:3279)
> 	9: .L786 (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/translator/java/JavaByteCodeTranslator.cpp:2142)
> 	10: .L234 (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/translator/java/JavaByteCodeParser.cpp:619)
> 	11: Jitrino::ByteCodeParser::parse(Jitrino::ByteCodeParserCallback*) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/translator/ByteCodeParser.h:70)
> 	12: Jitrino::JavaTranslator::translateMethod(Jitrino::CompilationInterface&, Jitrino::MethodDesc&,
Jitrino::IRBuilder&) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/translator/java/JavaTranslator.cpp:58)
> 	13: Jitrino::TranslatorSession::translate() (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/translator/TranslatorIntfc.cpp:62)
> 	14: Jitrino::TranslatorSession::run() (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/translator/TranslatorIntfc.cpp:44)
> 	15: Jitrino::runPipeline(Jitrino::CompilationContext*) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/main/Jitrino.cpp:226)
> 	16: Jitrino::compileMethod(Jitrino::CompilationContext*) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/main/Jitrino.cpp:261)
> 	17: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/main/Jitrino.cpp:286)
> 	18: JIT_compile_method_with_params (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/vm/drl/DrlJITInterface.cpp:282)
> 	19: Dll_JIT::compile_method_with_params(void*, Method*, OpenMethodExecutionParams) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/include/dll_jit_intf.h:86)
> 	20: compile_do_compilation_jit(Method*, JIT*) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/src/jit/compile.cpp:700)
> 	21: vm_compile_method (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/src/class_support/C_Interface.cpp:2538)
> 	22: DrlEMImpl::compileMethod(Method*) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/em/src/DrlEMImpl.cpp:520)
> 	23: CompileMethod (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/em/src/em_intf.cpp:49)
> 	24: compile_do_compilation (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/src/jit/compile.cpp:780)
> 	25: compile_jit_a_method(Method*) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/src/jit/compile.cpp:828)
> 	26: IP is 0x410D0172 <native code>
> 	27: javax/swing/colorchooser/AbstractColorChooserPanel.installChooserPanel(Ljavax/swing/JColorChooser;)V
(AbstractColorChooserPanel.java:-1)
> 	28: javax/swing/plaf/basic/BasicColorChooserUI$PropertyHandler.propertyChange(Ljava/beans/PropertyChangeEvent;)V
(BasicColorChooserUI.java:-1)
> 	29: java/beans/PropertyChangeSupport.doFirePropertyChange(Ljava/beans/PropertyChangeEvent;)V
(PropertyChangeSupport.java:-1)
> 	30: java/beans/PropertyChangeSupport.firePropertyChange(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
(PropertyChangeSupport.java:59)
> 	31: java/awt/Component.firePropertyChangeImpl(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
(Component.java:-1)
> 	32: java/awt/Component.firePropertyChange(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
(Component.java:-1)
> 	33: javax/swing/JColorChooser.setChooserPanels([Ljavax/swing/colorchooser/AbstractColorChooserPanel;)V
(JColorChooser.java:-1)
> 	34: javax/swing/plaf/basic/BasicColorChooserUI.installUI(Ljavax/swing/JComponent;)V
(BasicColorChooserUI.java:-1)
> 	35: javax/swing/JComponent.setUI(Ljavax/swing/plaf/ComponentUI;)V (JComponent.java:-1)
> SIGSEGV in VM code.
> Stack trace:
> 	36: Jitrino::Ia32::StackInfo::readByteSize(unsigned char const*) const (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/codegenerator/ia32/Ia32StackInfo.cpp:107)
> 	37: Jitrino::Ia32::RuntimeInterface::getBcLocationForNative(Jitrino::MethodDesc*, unsigned
long long, unsigned short*) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/codegenerator/ia32/Ia32RuntimeInterface.cpp:78)
> 	38: Jitrino::Jitrino::GetBcLocationForNative(Jitrino::MethodDesc*, unsigned long long,
unsigned short*) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/main/Jitrino.cpp:358)
> 	39: get_bc_location_for_native (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/jitrino/src/vm/drl/DrlJITInterface.cpp:590)
> 	40: Dll_JIT::get_bc_location_for_native(Method*, void*, unsigned short*) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/include/dll_jit_intf.h:240)
> 	41: get_file_and_line (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/src/stack/stack_trace.cpp:60)
> 	42: st_get_java_method_info (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/src/stack/stack_dump.cpp:196)
> 	43: st_print_stack(Registers*) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/src/stack/stack_dump.cpp:242)
> 	44: abort_handler(int, siginfo*, void*) (/export/users2/avarlamo/linux.ia32/svn-repo/drlvm/vm/vmcore/src/util/linux/signals_ia32.cpp:614)
> <end of stack trace>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message