Changeset 10354 in webkit for trunk/JavaScriptCore/kjs/internal.cpp
- Timestamp:
- Aug 26, 2005, 4:46:27 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/internal.cpp
r10352 r10354 351 351 int Parser::sid = 0; 352 352 353 const int initialCapacity = 64; 354 const int growthFactor = 2; 355 356 static int numNewNodes; 357 static int newNodesCapacity; 358 static Node **newNodes; 359 360 void Parser::saveNewNode(Node *node) 361 { 362 if (numNewNodes == newNodesCapacity) { 363 newNodesCapacity = (newNodesCapacity == 0) ? initialCapacity : newNodesCapacity * growthFactor; 364 newNodes = (Node **)realloc(newNodes, sizeof(Node *) * newNodesCapacity); 365 } 366 367 newNodes[numNewNodes++] = node; 368 } 369 370 static void clearNewNodes() 371 { 372 for (int i = 0; i < numNewNodes; i++) { 373 if (newNodes[i]->refcount() == 0) 374 delete newNodes[i]; 375 } 376 delete newNodes; 377 newNodes = 0; 378 numNewNodes = 0; 379 newNodesCapacity = 0; 380 } 381 353 382 SharedPtr<ProgramNode> Parser::parse(const UString &sourceURL, int startingLineNumber, 354 383 const UChar *code, unsigned int length, int *sourceId, … … 376 405 *progNode = 0; 377 406 407 clearNewNodes(); 408 378 409 if (parseError || lexError) { 379 410 int eline = Lexer::curr()->lineNo(); … … 392 423 *progNode = prog; 393 424 } 394 395 425 396 426 // ------------------------------ InterpreterImp -------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.