[PATCH][asmtools] Fix incorrect handling of quoted class names by jasm

Roger Riggs Roger.Riggs at Oracle.com
Tue Mar 6 18:46:41 UTC 2018


fyi,

Attachments are supported...

Settings for pass_mime_types and filter_filename_extensions are 
controlled by the list administrators and moderators.

multipart/mixed
multipart/alternative
text/plain
text/x-diff
text/x-patch
message/rfc822
multipart/signed

It the attachment is not recognized, it may be stripped.

fyi, Roger


On 3/6/2018 11:35 AM, Kevin Looney wrote:
> Hi Maxim,
>
> Hmm - our mailer supports attachments.    Another mystery .....
>
> OK - this inline diff will work fine.  Our AsmTools moderator will 
> evaluate your patch.
>
> Thanks again for the contribution!
>
> Regards,
> Kevin L
>
> On 3/6/18 8:26 AM, Maxim Degtyarev wrote:
>> It seems file attach lost somewhere in the middle. Does this mailing
>> list support attaches?
>> Here is the patch:
>>
>> =====
>>
>> # HG changeset patch
>> # User maccimo
>> # Date 1520137328 -10800
>> #      Sun Mar 04 07:22:08 2018 +0300
>> # Node ID 2704790eab9c060bc0ba3f3c29a31e95379224f4
>> # Parent  872f704a0d9a0198ae7ce1ae12a676cb180fd424
>> Fix quoted class names handling bug.
>> Quoted class names was not prepended by proper package name even if
>> *.jasm file contains "package" statement.
>>
>> diff --git a/src/org/openjdk/asmtools/jasm/Parser.java
>> b/src/org/openjdk/asmtools/jasm/Parser.java
>> --- a/src/org/openjdk/asmtools/jasm/Parser.java
>> +++ b/src/org/openjdk/asmtools/jasm/Parser.java
>> @@ -416,6 +416,7 @@
>>               case STRINGVAL:
>>                   v = scanner.stringValue;
>>                   scanner.scan();
>> +                v = prependPackage(v, uncond);
>>                   return pool.FindCellAsciz(v);
>>                   // Some identifiers might coincide with token names.
>>                   // these should be OK to use as identifier names.
>> @@ -435,12 +436,7 @@
>>               case IDENT:
>>                   v = scanner.idValue;
>>                   scanner.scan();
>> -                if (uncond || (scanner.token == Token.FIELD)) {
>> -                    if ((!v.contains("/"))             // class
>> identifier doesn't contain "/"
>> -                            && (!v.contains("["))){ // class
>> identifier doesn't contain "["
>> -                        v = pkgPrefix + v; // add package
>> -                    }
>> -                }
>> +                v = prependPackage(v, uncond);
>>                   return pool.FindCellAsciz(v);
>>               default:
>>                   ConstType key = Tables.tag(scanner.token.value());
>> @@ -450,6 +446,16 @@
>>           }
>>       }
>>
>> +    private String prependPackage(String className, boolean uncond) {
>> +        if (uncond || (scanner.token == Token.FIELD)) {
>> +            if ((!className.contains("/"))             // class
>> identifier doesn't contain "/"
>> +                    && (!className.contains("["))){ // class
>> identifier doesn't contain "["
>> +                className = pkgPrefix + className; // add package
>> +            }
>> +        }
>> +        return className;
>> +    }
>> +
>>
>>       /**
>>        * Parse a signed integer of size bytes long.
>>
>>
>> =====
>>
>>
>> 2018-03-06 18:42 GMT+03:00 Kevin Looney <kevin.looney at oracle.com>:
>>> Hello Maxim,
>>>
>>> Thanks for identifying the issue in asmtools.
>>>
>>>> The following patch address quoted class names handling bug in 
>>>> `asmtools
>>>> jasm`.
>>> Did you forget to attach the patch? - or are you simply reporting a 
>>> problem
>>> without a fix?
>>>
>>> Thanks in advance, Regards,
>>> Kevin L
>>> Manager - Conformance tools
>>>
>>>
>>>
>>> On 3/3/18 9:22 PM, Maxim Degtyarev wrote:
>>>> The following patch address quoted class names handling bug in 
>>>> `asmtools
>>>> jasm`.
>>>>
>>>> Quick example: Following code will produce class `TestQuoted` in
>>>> top-level package ignoring package, specified by the "package"
>>>> statement.
>>>> After removing quotes around class name resulting class file will
>>>> contain class `pkg.TestQuoted` as expected.
>>>>
>>>>
>>>> package  pkg;
>>>>
>>>> super public class "TestQuoted"
>>>>       version 52:0
>>>> {
>>>>
>>>>
>>>> public Method "<init>":"()V"
>>>>       stack 1 locals 1
>>>> {
>>>>           aload_0;
>>>>           invokespecial    Method java/lang/Object."<init>":"()V";
>>>>           return;
>>>> }
>>>>
>>>> } // end Class TestQuoted
>>>
>>>
>>> -- 
>>> kevin.looney at oracle.com
>>>
>



More information about the code-tools-dev mailing list