func doResolveToMountTable(n namespace.T, context *context.T, name string, options []naming.NamespaceOpt) (jutil.Object, error) { entry, err := n.ResolveToMountTable(context, name, options...) if err != nil { return jutil.NullObject, err } env, freeFunc := jutil.GetEnv() defer freeFunc() jEntry, err := jutil.JVomCopy(env, entry, JMountEntryClass) if err != nil { return jutil.NullObject, err } // Must grab a global reference as we free up the env and all local references that come along // with it. return jutil.NewGlobalRef(env, jEntry), nil // Un-refed in DoAsyncCall }
func doGetPermissions(n namespace.T, context *context.T, name string, options []naming.NamespaceOpt) (jutil.Object, error) { permissions, version, err := n.GetPermissions(context, name, options...) if err != nil { return jutil.NullObject, err } env, freeFunc := jutil.GetEnv() defer freeFunc() jPermissions, err := jutil.JVomCopy(env, permissions, jPermissionsClass) if err != nil { return jutil.NullObject, err } result := make(map[jutil.Object]jutil.Object) result[jutil.JString(env, version)] = jPermissions jResult, err := jutil.JObjectMap(env, result) if err != nil { return jutil.NullObject, err } // Must grab a global reference as we free up the env and all local references that come along // with it. return jutil.NewGlobalRef(env, jResult), nil // Un-refed in DoAsyncCall }