<div dir="ltr">Hi Nick,<div><br></div><div style>This topic is related to HotSpot Server Compiler instead of the Java core library, so I&#39;m cc&#39;ing this email to hotspot-compiler-dev and dropping core-libs-dev.</div>
<div style><br></div><div style>As you already know, HotSpot compilers are shielded from VM runtime implementation details via the Compiler Interface (CI). That&#39;s why you shouldn&#39;t be getting raw oops in C2 code.</div>
<div style><br></div><div style>Where are you getting the oopInstance from? If it can be found from some known &quot;roots&quot;, e.g. &quot;well-known classes&quot;, fields of &quot;well-known classes&quot;, or the holder class of the method to be compiled, etc., then it&#39;s already available through CI.</div>
<div style><br></div><div style>- Kris</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 1, 2013 at 3:17 AM, Nick Williams <span dir="ltr">&lt;<a href="mailto:nicholas+openjdk@nicholaswilliams.net" target="_blank">nicholas+openjdk@nicholaswilliams.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In native code (library_call.cpp), if I have an oop (which I can convert to a jobject if need be), how do I get a ciObject? I see that ciEnv has a ciObject* get_object(oop) method, but it&#39;s private. And ciObjectFactory has a ciObject* get(oop) method, but I can&#39;t figure out how to get the ciObjectFactory instance.<br>

<br>
I know that ciObject keeps a jobject internally, and I know that ciObject has a ciObject(oop) constructor, but it&#39;s protected (for good reason).<br>
<br>
If it helps, I&#39;m trying to inline a method and need to set_result(makecon(TypeInstPtr::make(oopInstance))). I may be going down the wrong path.<br>
<br>
Thanks in advance for any help,<br>
<br>
Nick</blockquote></div><br></div>