| 
									
										
										
										
											2013-05-11 21:52:05 -04:00
										 |  |  | namespace factor { | 
					
						
							| 
									
										
										
										
											2009-11-02 19:11:12 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct code_root { | 
					
						
							| 
									
										
										
										
											2013-05-11 21:52:05 -04:00
										 |  |  |   cell value; | 
					
						
							|  |  |  |   bool valid; | 
					
						
							|  |  |  |   factor_vm* parent; | 
					
						
							| 
									
										
										
										
											2009-11-02 19:11:12 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-11 21:52:05 -04:00
										 |  |  |   void push() { parent->code_roots.push_back(this); } | 
					
						
							| 
									
										
										
										
											2009-11-02 19:11:12 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-12 23:20:43 -04:00
										 |  |  |   code_root(cell value, factor_vm* parent) | 
					
						
							|  |  |  |       : value(value), valid(true), parent(parent) { | 
					
						
							| 
									
										
										
										
											2013-05-11 21:52:05 -04:00
										 |  |  |     push(); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2009-11-02 19:11:12 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-11 21:52:05 -04:00
										 |  |  |   ~code_root() { | 
					
						
							|  |  |  |     FACTOR_ASSERT(parent->code_roots.back() == this); | 
					
						
							|  |  |  |     parent->code_roots.pop_back(); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2009-11-02 19:11:12 -05:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |