我正在寫一個路徑分析工具,並且我使用jdt Astparser來修改源代碼 如果我想在每條原始行之後添加一些代碼並讓它們是原子操作,不會改變源代碼的行爲。就像這樣: 原始源代碼:源代碼操作(添加同步塊)更改變量範圍
int a = 0;
int b = 0;
a = b;
操作
synchronized (lock) {
int a = 0; //original code
//my code
//....
//end
}
synchronized (lock) {
int b = 0; //original code
//my code
//....
//end
}
synchronized (lock) {
a = b; //original code
//my code
//....
//end
}
之後,但它改變了變量的作用域,變量a和b不再是全球性的代碼無法編譯。
是否有任何變量聲明和代碼後,我插入結合起來,讓它們成爲原子操作,不改變變量的作用域方法?
...和我的英語水平:)對不起
如果你不希望他們在街區的範圍,不要在塊申報。 – 2013-05-11 04:15:40
我想要的變量聲明和代碼我插入之後是原子操作,以便它必須在塊 – kaze13 2013-05-11 04:18:14
@布賴恩羅奇見上文。 – kaze13 2013-05-11 05:17:34