コード例 #1
0
 public override void EmitPreNativeCallStatements(CodeBuilder b, string var)
 {
     b.BeginIf("{0}", CountArg.VarName);
     b.BeginFor(CountArg.VarName);
     b.AppendLine("if({0}[i]) ((cef_base_t*){0}[i])->add_ref((cef_base_t*){0}[i]);", StructArg.VarName);
     b.EndBlock();
     b.EndBlock();
 }
コード例 #2
0
 public override void EmitPostRemoteRaiseEventStatements(CodeBuilder b, string var)
 {
     b.BeginIf("e.m_{0}_managed != null", var);
     b.BeginFor("e.m_{0}_managed.Length", var);
     b.AppendLine("e.m_{0}_managed[i].Dispose();", var);
     b.EndBlock();
     b.EndBlock();
 }
コード例 #3
0
 public override void EmitPublicEventArgGetterStatements(CodeBuilder b, string var)
 {
     b.BeginIf("m_{0}_managed == null", var);
     b.AppendLine("m_{0}_managed = new {1}[m_{2}];", var, Struct.ClassName, CountArg.VarName);
     b.BeginFor("m_" + CountArg.VarName);
     b.AppendLine("m_{0}_managed[i] = {1}.Wrap(m_{0} + (i * m_{0}_structsize));", var, Struct.ClassName);
     b.EndBlock();
     b.EndBlock();
     b.AppendLine("return m_{0}_managed;", var);
 }
コード例 #4
0
 protected override void EmitExecuteInTargetProcess(CodeBuilder b)
 {
     Debug.Assert(Arguments[2].ArgumentType.PublicSymbol == "CfxPostDataElement");
     b.AppendLine("var elements = ((CfxPostData)RemoteProxy.Unwrap(self)).Elements;");
     b.BeginIf("elements != null");
     b.AppendLine("__retval = new IntPtr[elements.Length];");
     b.BeginFor("elements.Length");
     b.AppendLine("__retval[i] = RemoteProxy.Wrap(elements[i]);");
     b.EndBlock();
     b.EndBlock();
 }
コード例 #5
0
 public override void EmitRemoteCall(CodeBuilder b, string remoteCallId, bool isStatic)
 {
     Debug.Assert(Parameters[2].ParameterType.PublicSymbol == "CfxPostDataElement");
     b.AppendLine("var call = new CfxPostDataGetElementsRemoteCall();");
     b.AppendLine("call.@this = RemotePtr.ptr;");
     b.AppendLine("call.RequestExecution(RemotePtr.connection);");
     b.AppendLine("if(call.__retval == null) return null;");
     b.AppendLine("var retval = new CfrPostDataElement[call.__retval.Length];");
     b.BeginFor("retval.Length");
     b.AppendLine("retval[i] = CfrPostDataElement.Wrap(new RemotePtr(connection, call.__retval[i]));");
     b.EndBlock();
     b.AppendLine("return retval;");
 }
コード例 #6
0
 public override void EmitRemoteCall(CodeBuilder b)
 {
     Debug.Assert(Arguments[2].ArgumentType.PublicSymbol == "CfxPostDataElement");
     b.AppendLine("var call = new CfxPostDataGetElementsRenderProcessCall();");
     b.AppendLine("call.@this = proxyId;");
     b.AppendLine("call.RequestExecution(this);");
     b.AppendLine("if(call.__retval == null) return null;");
     b.AppendLine("var retval = new CfrPostDataElement[call.__retval.Length];");
     b.BeginFor("retval.Length");
     b.AppendLine("retval[i] = CfrPostDataElement.Wrap(call.__retval[i]);");
     b.EndBlock();
     b.AppendLine("return retval;");
 }
コード例 #7
0
 public override void EmitPreNativeCallStatements(CodeBuilder b, string var)
 {
     b.AppendLine("{0} *{1}_tmp = ({0}*)malloc({2} * sizeof({0}));", Struct.OriginalSymbol, var, CountArg.VarName);
     b.BeginBlock("if({0}_tmp)", var);
     b.BeginFor(CountArg.VarName);
     b.AppendLine("{0}_tmp[i] = *{0}[i];", var);
     b.EndBlock();
     b.AppendLine("*{0}_nomem = 0;", var);
     b.BeginElse();
     b.AppendLine("{0} = 0;", CountArg.VarName);
     b.AppendLine("*{0}_nomem = 1;", var);
     b.EndBlock();
 }
コード例 #8
0
 public override void EmitPublicCall(CodeBuilder b)
 {
     b.AppendLine("int rangesCount = CfxApi.cfx_print_settings_get_page_ranges_count(NativePtr);");
     b.AppendLine("IntPtr[] pp = new IntPtr[rangesCount];");
     b.AppendLine("PinnedObject pp_pinned = new PinnedObject(pp);");
     b.AppendLine("int ranges_nomem;");
     b.AppendLine("CfxApi.cfx_print_settings_get_page_ranges(NativePtr, ref rangesCount, pp_pinned.PinnedPtr, out ranges_nomem);");
     b.AppendLine("pp_pinned.Free();");
     b.BeginBlock("if(ranges_nomem != 0)");
     b.AppendLine("throw new OutOfMemoryException();");
     b.EndBlock();
     b.AppendLine("var retval = new CfxRange[rangesCount];");
     b.BeginFor("rangesCount");
     b.AppendLine("retval[i] = CfxRange.WrapOwned(pp[i]);");
     b.EndBlock();
     b.AppendLine("return retval;");
 }