309 _cnt = _max = req;
310 _outcnt = _outmax = 0;
311 _class_id = Class_Node;
312 _flags = 0;
313 _out = NO_OUT_ARRAY;
314 return idx;
315 }
316
317 //------------------------------Node-------------------------------------------
318 // Create a Node, with a given number of required edges.
319 Node::Node(uint req)
320 : _idx(Init(req))
321 #ifdef ASSERT
322 , _parse_idx(_idx)
323 #endif
324 {
325 assert( req < Compile::current()->max_node_limit() - NodeLimitFudgeFactor, "Input limit exceeded" );
326 debug_only( verify_construction() );
327 NOT_PRODUCT(nodes_created++);
328 if (req == 0) {
329 assert( _in == (Node**)this, "Must not pass arg count to 'new'" );
330 _in = NULL;
331 } else {
332 assert( _in[req-1] == this, "Must pass arg count to 'new'" );
333 Node** to = _in;
334 for(uint i = 0; i < req; i++) {
335 to[i] = NULL;
336 }
337 }
338 }
339
340 //------------------------------Node-------------------------------------------
341 Node::Node(Node *n0)
342 : _idx(Init(1))
343 #ifdef ASSERT
344 , _parse_idx(_idx)
345 #endif
346 {
347 debug_only( verify_construction() );
348 NOT_PRODUCT(nodes_created++);
349 // Assert we allocated space for input array already
|
309 _cnt = _max = req;
310 _outcnt = _outmax = 0;
311 _class_id = Class_Node;
312 _flags = 0;
313 _out = NO_OUT_ARRAY;
314 return idx;
315 }
316
317 //------------------------------Node-------------------------------------------
318 // Create a Node, with a given number of required edges.
319 Node::Node(uint req)
320 : _idx(Init(req))
321 #ifdef ASSERT
322 , _parse_idx(_idx)
323 #endif
324 {
325 assert( req < Compile::current()->max_node_limit() - NodeLimitFudgeFactor, "Input limit exceeded" );
326 debug_only( verify_construction() );
327 NOT_PRODUCT(nodes_created++);
328 if (req == 0) {
329 _in = NULL;
330 } else {
331 assert( _in[req-1] == this, "Must pass arg count to 'new'" );
332 Node** to = _in;
333 for(uint i = 0; i < req; i++) {
334 to[i] = NULL;
335 }
336 }
337 }
338
339 //------------------------------Node-------------------------------------------
340 Node::Node(Node *n0)
341 : _idx(Init(1))
342 #ifdef ASSERT
343 , _parse_idx(_idx)
344 #endif
345 {
346 debug_only( verify_construction() );
347 NOT_PRODUCT(nodes_created++);
348 // Assert we allocated space for input array already
|