From 64f6bd0f61ac08682c8ec21da7057db9ed87b3f8 Mon Sep 17 00:00:00 2001 From: Martin Stjernholm <mast@lysator.liu.se> Date: Tue, 16 May 2000 23:48:47 +0200 Subject: [PATCH] Can't simply look for _encode_object in every object, since if it's a Remote.Obj object it will happily return a Call object then. Thus no remote objects were encoded correctly when sent back. Rev: lib/modules/Remote.pmod/call.pike:1.5 Rev: lib/modules/Remote.pmod/context.pike:1.10 Rev: lib/modules/Remote.pmod/obj.pike:1.3 --- lib/modules/Remote.pmod/call.pike | 2 ++ lib/modules/Remote.pmod/context.pike | 2 +- lib/modules/Remote.pmod/obj.pike | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/modules/Remote.pmod/call.pike b/lib/modules/Remote.pmod/call.pike index 2fa3abc55e..6ddd6c7308 100644 --- a/lib/modules/Remote.pmod/call.pike +++ b/lib/modules/Remote.pmod/call.pike @@ -1,6 +1,8 @@ #include "remote.h" +constant is_remote_call = 1; + string objectid; string name; object con; diff --git a/lib/modules/Remote.pmod/context.pike b/lib/modules/Remote.pmod/context.pike index f137895901..8f5825c1eb 100644 --- a/lib/modules/Remote.pmod/context.pike +++ b/lib/modules/Remote.pmod/context.pike @@ -97,7 +97,7 @@ array encode(mixed val) { if (intp(val) || floatp(val)) return ({ CTX_OTHER, val }); - if (objectp(val) && !val->_encode_object) + if (objectp(val) && (object_program(val)->is_remote_obj || !val->_encode_object)) return ({ CTX_OBJECT, id_for(val) }); if (functionp(val) || programp(val)) return ({ CTX_FUNCTION, id_for(val) }); diff --git a/lib/modules/Remote.pmod/obj.pike b/lib/modules/Remote.pmod/obj.pike index 61d9c803c9..bbc67f7c76 100644 --- a/lib/modules/Remote.pmod/obj.pike +++ b/lib/modules/Remote.pmod/obj.pike @@ -1,6 +1,8 @@ #include "remote.h" +constant is_remote_obj = 1; + string id; object con; object ctx; -- GitLab