1 | !include once #1019934 // BCEL |
2 | |
3 | import org.apache.bcel.classfile.Attribute; |
4 | import org.apache.bcel.classfile.SourceFile; |
5 | import org.apache.bcel.generic.*; |
6 | |
7 | static void renameSourceInfoInClassFile(File classFile, S newName) { |
8 | JavaClass c = new ClassParser(classFile.getPath(), classFile.getName()).parse(); |
9 | //print(c.getSourceFileName()); |
10 | |
11 | ClassGen g = new ClassGen(c); |
12 | |
13 | int nameIndex = g.getConstantPool().addUtf8(newName); |
14 | |
15 | for (Attribute attr : g.getAttributes()) |
16 | if (attr instanceof SourceFile) { |
17 | g.removeAttribute(attr); |
18 | break; |
19 | } |
20 | |
21 | g.addAttribute(new SourceFile( |
22 | g.getConstantPool().addUtf8("SourceFile"), |
23 | 2, |
24 | nameIndex, |
25 | g.getConstantPool().getConstantPool())); |
26 | |
27 | c = g.getJavaClass(); |
28 | c.dump(classFile); // overwrite! |
29 | } |
Began life as a copy of #1004056
download show line numbers debug dex old transpilations
Travelled to 15 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, ddnzoavkxhuk, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1004069 |
Snippet name: | renameSourceInfoInClassFile |
Eternal ID of this version: | #1004069/2 |
Text MD5: | 2a98ec057555a5584720cba5359563f3 |
Author: | stefan |
Category: | javax |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2018-12-01 15:52:34 |
Source code size: | 818 bytes / 29 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 622 / 645 |
Version history: | 1 change(s) |
Referenced in: | [show references] |