def paramlistAsNative(m, empty='void'): l = [paramAsNative(p) for p in m.params] if m.implicit_jscontext: l.append("JSContext* cx") if m.optional_argc: l.append('uint8_t _argc') if not m.notxpcom and m.realtype.name != 'void': l.append(paramAsNative(xpidl.Param(paramtype='out', type=None, name='_retval', attlist=[], location=None, realtype=m.realtype))) # Set any optional out params to default to nullptr. Skip if we just added # extra non-optional args to l. if len(l) == len(m.params): paramIter = len(m.params) - 1 while (paramIter >= 0 and m.params[paramIter].optional and m.params[paramIter].paramtype == "out"): t = m.params[paramIter].type # Strings can't be optional, so this shouldn't happen, but let's make sure: if t == "AString" or t == "ACString" or t == "DOMString" or t == "AUTF8String": break l[paramIter] += " = nullptr" paramIter -= 1 if len(l) == 0: return empty return ", ".join(l)
def paramlistAsNative(l, rettype, notxpcom, empty='void'): l = list(l) if not notxpcom and rettype.name != 'void': l.append(xpidl.Param(paramtype='out', type=None, name='_retval', attlist=[], location=None, realtype=rettype)) if len(l) == 0: return empty return ", ".join([paramAsNative(p) for p in l])
def paramlistAsNative(m, empty='void'): l = [paramAsNative(p) for p in m.params] if m.implicit_jscontext: l.append("JSContext* cx") if m.optional_argc: l.append('uint8_t _argc') if not m.notxpcom and m.realtype.name != 'void': l.append(paramAsNative(xpidl.Param(paramtype='out', type=None, name='_retval', attlist=[], location=None, realtype=m.realtype))) if len(l) == 0: return empty return ", ".join(l)