Changeset 468 for trunk/thune/urlan.c
- Timestamp:
- 09/03/07 02:29:05 (15 months ago)
- Files:
-
- 1 modified
-
trunk/thune/urlan.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/thune/urlan.c
r458 r468 445 445 446 446 447 int ur_sizeofUrlanEnv()448 {449 return sizeof(UrlanEnv);450 }451 452 453 447 UThread* ur_thread( UrlanEnv* env ) 454 448 { … … 458 452 459 453 /** 460 Initialize UrlanEnv.454 Create and initialize UrlanEnv. 461 455 462 456 \param custom Pointer to array of cutsom datatypes. … … 464 458 \param customCount Number of UDatatype in custom array. 465 459 466 \return UR_EVAL_ code. 467 */ 468 int ur_startup( UrlanEnv* env, UDatatype* custom, int customCount ) 469 { 460 \return pointer to script environment. 461 */ 462 UrlanEnv* ur_makeEnv( UDatatype* custom, int customCount ) 463 { 464 UrlanEnv* env; 470 465 UThread* ut; 471 466 int n; … … 474 469 _validateEnv(); 475 470 #endif 471 472 env = memAlloc( sizeof(UrlanEnv) ); 473 if( ! env ) 474 return 0; 476 475 477 476 env->threads = 0; … … 505 504 perror( "mutexInit" ); 506 505 #endif 507 return UR_EVAL_ERROR;506 return 0; 508 507 } 509 508 … … 535 534 n = ur_tokenize( ut, _bootScript, _bootScript + sizeof(_bootScript) ); 536 535 if( ! n ) 537 return UR_EVAL_ERROR; 536 { 537 ur_freeEnv( env ); 538 return 0; 539 } 538 540 ur_bind( n, (UCell*) &ur_thrGlobal ); 539 541 n = ur_eval( ut, n, 0 ); 540 542 if( n != UR_EVAL_OK ) 541 return n; 543 { 544 ur_freeEnv( env ); 545 return 0; 546 } 542 547 #endif 543 548 n = ur_evalCStr( ut, _envScript, sizeof(_envScript) ); … … 573 578 ur_installExceptionHandlers(); 574 579 575 return n;580 return env; 576 581 } 577 582 … … 630 635 before a second thread is created. 631 636 */ 632 void ur_freezeEnv( U Thread* ut, int binCount, int blkCount )633 { 634 U rlanEnv* env = ut->env;637 void ur_freezeEnv( UrlanEnv* env, int binCount, int blkCount ) 638 { 639 UThread* ut = env->threads; 635 640 636 641 assert( env->bin.arr.ptr.v == 0 ); … … 727 732 Release all resources used by env. 728 733 */ 729 void ur_ shutdown( UrlanEnv* env )734 void ur_freeEnv( UrlanEnv* env ) 730 735 { 731 736 UThread* thr; 732 737 UThread* next; 738 739 if( ! env ) 740 return; 741 733 742 if( (thr = env->threads) ) 734 743 { … … 753 762 ur_arrayFree( &env->atoms ); 754 763 ur_arrayFree( &env->atomNames ); 764 765 memFree( env ); 755 766 } 756 767
