Branch: Tag:

2002-04-03

2002-04-03 12:02:04 by Martin Stjernholm <mast@lysator.liu.se>

Fixed a race that could occur when two result p-code objects were created
simultaneously from the same source p-code. Also modified the p-code
version scheme slightly to avoid accidental equal values between different
Roxen releases.

Rev: server/etc/modules/RXML.pmod/PXml.pike:1.63
Rev: server/etc/modules/RXML.pmod/module.pmod:1.277
Rev: server/etc/modules/RXML.pmod/utils.pmod:1.29

7:   //!   //! Created 2000-01-21 by Martin Stjernholm   //! - //! $Id: utils.pmod,v 1.28 2001/07/16 14:13:00 mast Exp $ + //! $Id: utils.pmod,v 1.29 2002/04/03 12:02:04 mast Exp $      constant is_RXML_encodable = 1;   
103:    p->context->handle_exception (    catch (RXML.parse_error (    "Unknown tag %s is not allowed in context of type %s.\n", -  format_short (p->tag_name()), p->type->name)), p, 1); +  format_short (p->tag_name()), p->type->name)), +  p, p->p_code);    return ({});   }   
113:    p->context->handle_exception (    catch (RXML.parse_error (    "Unknown processing instruction %s not allowed in context of type %s.\n", -  format_short ("<" + p->tag_name() + str), p->type->name)), p, 1); +  format_short ("<" + p->tag_name() + str), p->type->name)), +  p, p->p_code);    return ({});   }   
122:    p->context->handle_exception (    catch (RXML.parse_error (    "CDATA text %O is not allowed in context of type %s.\n", -  format_short (str), p->type->name)), p, 1); +  format_short (str), p->type->name)), +  p, p->p_code);    return ({});   }   
154:    p->context->handle_exception (    catch (RXML.parse_error (    "Sorry, can't handle containers beginning with %s.\n", -  p->tag_name())), p, 1); +  p->tag_name())), +  p, p->p_code);    }    return p->type->free_text ? 0 : ({});   }
185:    else if (has_value (entity, ".")) {    p->drain_output();    mixed value = p->handle_var ( -  p, +     entity,    // No quoting of splice args. FIXME: Add some sort of    // safeguard against splicing in things like "nice><evil
206:    else if (has_value (entity, ".")) {    p->drain_output();    mixed value = p->handle_var ( -  p, +     entity,    // No quoting of splice args. FIXME: Add some sort of    // safeguard against splicing in things like "nice><evil