commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r8832 - gnuradio/branches/developers/jcorgan/ptrfix/gn


From: jcorgan
Subject: [Commit-gnuradio] r8832 - gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime
Date: Tue, 8 Jul 2008 18:35:36 -0600 (MDT)

Author: jcorgan
Date: 2008-07-08 18:35:35 -0600 (Tue, 08 Jul 2008)
New Revision: 8832

Modified:
   
gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
   
gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime/gr_hier_block2.h
   
gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime/qa_gr_hier_block2_derived.cc
Log:
Partial fix

Modified: 
gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
===================================================================
--- 
gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
 2008-07-09 00:09:17 UTC (rev 8831)
+++ 
gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
 2008-07-09 00:35:35 UTC (rev 8832)
@@ -31,9 +31,10 @@
 
 #define GR_HIER_BLOCK2_DEBUG 0
 
-gr_hier_block2_sptr gr_make_hier_block2(const std::string &name, 
-                                        gr_io_signature_sptr input_signature,
-                                        gr_io_signature_sptr output_signature)
+gr_hier_block2_sptr
+gr_make_hier_block2(const std::string &name, 
+                    gr_io_signature_sptr input_signature,
+                    gr_io_signature_sptr output_signature)
 {
   return gr_hier_block2_sptr(new gr_hier_block2(name, input_signature, 
output_signature));
 }
@@ -42,10 +43,19 @@
                                gr_io_signature_sptr input_signature,
                                gr_io_signature_sptr output_signature)
   : gr_basic_block(name, input_signature, output_signature),
+    d_me(gr_hier_block2_sptr(this)), // temporary holder for shared pointer
     d_detail(new gr_hier_block2_detail(this))
 {
 }
 
+gr_hier_block2_sptr
+gr_hier_block2::get_initial_sptr()
+{
+  gr_hier_block2_sptr p(d_me);
+  d_me.reset();
+  return p;
+}
+
 gr_hier_block2::~gr_hier_block2()
 {
   delete d_detail;

Modified: 
gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime/gr_hier_block2.h
===================================================================
--- 
gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime/gr_hier_block2.h
  2008-07-09 00:09:17 UTC (rev 8831)
+++ 
gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime/gr_hier_block2.h
  2008-07-09 00:35:35 UTC (rev 8832)
@@ -51,8 +51,11 @@
    * \brief Private implementation details of gr_hier_block2
    */
   gr_hier_block2_detail *d_detail;
-  
+    
 protected: 
+  gr_hier_block2_sptr d_me;
+  gr_hier_block2_sptr get_initial_sptr();
+
   gr_hier_block2(const std::string &name,
                 gr_io_signature_sptr input_signature,
                 gr_io_signature_sptr output_signature);

Modified: 
gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime/qa_gr_hier_block2_derived.cc
===================================================================
--- 
gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime/qa_gr_hier_block2_derived.cc
      2008-07-09 00:09:17 UTC (rev 8831)
+++ 
gnuradio/branches/developers/jcorgan/ptrfix/gnuradio-core/src/lib/runtime/qa_gr_hier_block2_derived.cc
      2008-07-09 00:35:35 UTC (rev 8832)
@@ -35,7 +35,9 @@
 gr_derived_block_sptr
 gr_make_derived_block()
 {
-  return gr_derived_block_sptr(new gr_derived_block());
+  gr_derived_block *p = new gr_derived_block();
+  gr_derived_block_sptr s(p->get_initial_sptr());
+  return s;
 }
 
 gr_derived_block::gr_derived_block()





reply via email to

[Prev in Thread] Current Thread [Next in Thread]