Revision: 951
Author: [email protected]
Date: Wed Dec 16 07:18:11 2009
Log: Add SPAGAIN after call_sv()s used to make callbacks. Without this, the  
stack
can move under us, if one of our callers has to extend it.
http://code.google.com/p/perl-devel-nytprof/source/detail?r=951

Modified:
  /trunk/NYTProf.xs

=======================================
--- /trunk/NYTProf.xs   Fri Dec 11 02:08:02 2009
+++ /trunk/NYTProf.xs   Wed Dec 16 07:18:11 2009
@@ -3945,6 +3945,7 @@
          sv_setiv(cb_args[i], file_minor);  XPUSHs(cb_args[i++]);
          PUTBACK;
          call_sv(cb, G_DISCARD);
+        SPAGAIN;
      }
      else {
          cb = Nullsv;
@@ -3978,6 +3979,7 @@
                      XPUSHs(cb_DISCOUNT_tag);
                      PUTBACK;
                      call_sv(cb, G_DISCARD);
+                    SPAGAIN;
                      break;
                  }

@@ -4021,6 +4023,7 @@

                      PUTBACK;
                      call_sv(cb, G_DISCARD);
+                    SPAGAIN;
                      break;
                  }

@@ -4119,6 +4122,7 @@

                      PUTBACK;
                      call_sv(cb, G_DISCARD);
+                    SPAGAIN;
                      break;
                  }

@@ -4201,6 +4205,7 @@

                      PUTBACK;
                      call_sv(cb, G_DISCARD);
+                    SPAGAIN;
                      break;
                  }

@@ -4249,6 +4254,7 @@

                      PUTBACK;
                      call_sv(cb, G_DISCARD);
+                    SPAGAIN;
                      break;
                  }

@@ -4329,6 +4335,7 @@

                      PUTBACK;
                      call_sv(cb, G_DISCARD);
+                    SPAGAIN;
                      break;
                  }

@@ -4439,6 +4446,7 @@

                      PUTBACK;
                      call_sv(cb, G_DISCARD);
+                    SPAGAIN;
                      break;
                  }

@@ -4469,6 +4477,7 @@

                      PUTBACK;
                      call_sv(cb, G_DISCARD);
+                    SPAGAIN;
                      break;
                  }

@@ -4513,6 +4522,7 @@

                      PUTBACK;
                      call_sv(cb, G_DISCARD);
+                    SPAGAIN;
                  }

                  store_attrib_sv(aTHX_ attr_hv, text, value_sv);
@@ -4544,6 +4554,7 @@

                      PUTBACK;
                      call_sv(cb, G_DISCARD);
+                    SPAGAIN;
                      break;
                  }

@@ -4563,6 +4574,7 @@

                      PUTBACK;
                      call_sv(cb, G_DISCARD);
+                    SPAGAIN;
                  }
                  NYTP_start_inflate(in);
  #else

-- 
You've received this message because you are subscribed to
the Devel::NYTProf Development User group.

Group hosted at:  http://groups.google.com/group/develnytprof-dev
Project hosted at:  http://perl-devel-nytprof.googlecode.com
CPAN distribution:  http://search.cpan.org/dist/Devel-NYTProf

To post, email:  [email protected]
To unsubscribe, email:  [email protected]

Reply via email to