richter     02/01/25 07:51:31

  Modified:    .        Tag: Embperl2c epinit.c
  Log:
  
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.18  +20 -6     embperl/Attic/epinit.c
  
  Index: epinit.c
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epinit.c,v
  retrieving revision 1.1.2.17
  retrieving revision 1.1.2.18
  diff -u -r1.1.2.17 -r1.1.2.18
  --- epinit.c  25 Jan 2002 07:04:31 -0000      1.1.2.17
  +++ epinit.c  25 Jan 2002 15:51:31 -0000      1.1.2.18
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epinit.c,v 1.1.2.17 2002/01/25 07:04:31 richter Exp $
  +#   $Id: epinit.c,v 1.1.2.18 2002/01/25 15:51:31 richter Exp $
   #
   
###################################################################################*/
   
  @@ -305,7 +305,7 @@
           */
           
           if (pPerlParam && SvROK(pPerlParam))
  -            Embperl__App__Config_new_init(aTHX_ pApp, SvRV(pPerlParam), 0) ;
  +            Embperl__App__Config_new_init(aTHX_ &pApp -> Config, SvRV(pPerlParam), 
0) ;
           }
   
       *ppApp = pApp ;
  @@ -1038,13 +1038,20 @@
           { /* we have a previous component, so let restore it */
           tComponent * pPrev = c -> pPrev;
           SV * pHV ;
  +        MAGIC * mg;
   
           memcpy (c, pPrev, sizeof (*c)) ;
           
        /* adjust pointer in perl magic */
           pHV = SvRV (c -> _perlsv) ;
  -     sv_unmagic (pHV, '~') ;
  -     sv_magic (pHV, NULL, '~', (char *)&pPrev, sizeof (pPrev)) ;
  +        if (mg = mg_find (pHV, '~'))
  +            *((tComponent **)(mg -> mg_ptr)) = c ;
  +        pHV = SvRV (c -> Config._perlsv) ;
  +        if (mg = mg_find (pHV, '~'))
  +            *((tComponentConfig **)(mg -> mg_ptr)) = &c -> Config ;
  +        pHV = SvRV (c -> Param._perlsv) ;
  +        if (mg = mg_find (pHV, '~'))
  +            *((tComponentParam **)(mg -> mg_ptr)) = &c -> Param ;
           }
      
       
  @@ -1261,6 +1268,7 @@
           { /* we have already a component, so let safe it first */
           tComponent * pPrev ;
           SV * pHV ;
  +        MAGIC * mg ;
   
           pPrev = ep_palloc(r->pPool,sizeof(*pPrev)) ;
   
  @@ -1270,8 +1278,14 @@
   
        /* adjust pointer in perl magic */
           pHV = SvRV (pPrev -> _perlsv) ;
  -     sv_unmagic (pHV, '~') ;
  -     sv_magic (pHV, NULL, '~', (char *)&pPrev, sizeof (pPrev)) ;
  +        if (mg = mg_find (pHV, '~'))
  +            *((tComponent **)(mg -> mg_ptr)) = pPrev ;
  +        pHV = SvRV (pPrev -> Config._perlsv) ;
  +        if (mg = mg_find (pHV, '~'))
  +            *((tComponentConfig **)(mg -> mg_ptr)) = &pPrev -> Config ;
  +        pHV = SvRV (pPrev -> Param._perlsv) ;
  +        if (mg = mg_find (pHV, '~'))
  +            *((tComponentParam **)(mg -> mg_ptr)) = &pPrev -> Param ;
           }
   
      
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to