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(); }
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(); }
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); }
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(); }
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;"); }
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;"); }
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(); }
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;"); }