<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:'times new roman', 'new york', times, serif;font-size:12pt"><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">hi dear</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">Recently I have reported a problem about args() and I test your solution but yet there is some problems I want to report here:</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">------------------ main code -------------------------------</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">void f1(int i, char *str) {}</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">void main()</div><div style="color: black;
font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">{</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">f1(1, "test");</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">}</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">------------------ aspect code -------------------------------</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">aspect A1{</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><span class="Apple-tab-span" style="white-space:pre"> </span>advice call("% f%(...)") : after() {</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><span class="Apple-tab-span"
style="white-space:pre"> </span> cout << "int value= " << *(int *)tjp->arg(0) << "char * string= " << (char *)tjp->arg(1) << endl;</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"> </span>}</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">};</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "> problem 1) -----------------</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">arg(0) output is OK for int type but arg(1) does not work for "char *" and </div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt;
">-------------------------------------------------------------------</div><div style="color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">problem 2) ----------------------------------------------</div><div><font class="Apple-style-span" face="'times new roman', 'new york', times, serif" size="3">function args() can return arguments (you should specify all arguments in args() ) but args() has problem when you want to use by "within" </font><font class="Apple-style-span" face="'times new roman', 'new york', times, serif">statement: </font></div><div><font class="Apple-style-span" face="'times new roman', 'new york', times, serif">aspect A2{</font></div><div><font class="Apple-style-span" face="'times new roman', 'new york', times, serif"><span class="Apple-tab-span" style="white-space:pre"> </span>pointcut PC1 = call("% f%(int i, char *s)") && !within("A2") && args(i,
s);</font></div><div><font class="Apple-style-span" face="'times new roman', 'new york', times, serif"><span class="Apple-tab-span" style="white-space:pre"> </span>advice PC1(i, s) : after(</font><span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; ">int i, char *s) {</span></div><div><span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "><span class="Apple-tab-span" style="white-space:pre"> </span>cout << "func call" << endl;</span></div><div><span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "><span class="Apple-tab-span" style="white-space:pre"> </span>f1(5, "test2");</span></div><div><span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "><span class="Apple-tab-span" style="white-space:pre"> </span>}</span></div><div><font class="Apple-style-span" face="'times
new roman', 'new york', times, serif">}</font></div><div><font class="Apple-style-span" face="'times new roman', 'new york', times, serif">----------------------------------------------------------------------------</font></div><div><font class="Apple-style-span" face="'times new roman', 'new york', times, serif">problem 3) a general bug in Aspectc is that it is not capture joinpoints such as "unsigned char" objects.</font></div><div><font class="Apple-style-span" face="'times new roman', 'new york', times, serif"><br></font></div><div><font class="Apple-style-span" face="'times new roman', 'new york', times, serif"><br></font></div><div><font class="Apple-style-span" face="'times new roman', 'new york', times, serif"><br></font></div><div><font class="Apple-style-span" face="'times new roman', 'new york', times, serif">best regards</font></div><div><font class="Apple-style-span" face="'times new roman', 'new york', times,
serif">Sh.Jalilian</font></div><div><font class="Apple-style-span" face="'times new roman', 'new york', times, serif"><br></font></div><div style="position: fixed; color: black; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "></div>
</div></body></html>