mirror of
https://github.com/gnustep/libs-steptalk.git
synced 2025-02-19 18:00:45 +00:00
Added som NSCoding
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@17444 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
129ea11412
commit
ff2fe9ef93
13 changed files with 124 additions and 4 deletions
|
@ -5,6 +5,11 @@
|
|||
* Modules: Removed StepTalk module as it is no more needed, because
|
||||
we have framework and it can provide scripting capabilities by it self
|
||||
* All GNUMakefiles modified to reflect change to Framework
|
||||
* Added Framework loading in .stenv description files.
|
||||
Use: Frameworks = (name1, name2);
|
||||
|
||||
NOTE: You HAVE to remove your previous installation of StepTalk to be
|
||||
able to install new one. (especially Local/Library/Headers/StepTalk).
|
||||
|
||||
2003 Aug 5 Stefan Urbanek <urbanek@host.sk>
|
||||
|
||||
|
|
|
@ -5,3 +5,5 @@ shared_*obj
|
|||
*.bundle
|
||||
*.stmodule
|
||||
*.stlanguage
|
||||
*.framework
|
||||
derived_src
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
{
|
||||
Name = "StepTalk";
|
||||
|
||||
Modules = (StepTalk);
|
||||
Frameworks = (StepTalk);
|
||||
|
||||
Classes =
|
||||
{
|
||||
|
|
|
@ -133,6 +133,14 @@
|
|||
[self loadModule:name];
|
||||
}
|
||||
|
||||
/* Load frameworks */
|
||||
enumerator = [[description frameworks] objectEnumerator];
|
||||
|
||||
while( (name = [enumerator nextObject]) )
|
||||
{
|
||||
[self includeFramework:name];
|
||||
}
|
||||
|
||||
/* Register finders */
|
||||
enumerator = [[description objectFinders] objectEnumerator];
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ enum
|
|||
NSMutableDictionary *behaviours;
|
||||
NSMutableDictionary *aliases;
|
||||
NSMutableArray *modules;
|
||||
NSMutableArray *frameworks;
|
||||
NSMutableArray *finders;
|
||||
|
||||
int restriction;
|
||||
|
@ -61,6 +62,7 @@ enum
|
|||
|
||||
- (NSMutableDictionary *)classes;
|
||||
- (NSArray *)modules;
|
||||
- (NSArray *)frameworks;
|
||||
- (NSArray *)objectFinders;
|
||||
@end
|
||||
|
||||
|
|
|
@ -87,6 +87,7 @@ static NSDictionary *dictForDescriptionWithName(NSString *defName)
|
|||
|
||||
- (void)updateUseList:(NSArray *)array;
|
||||
- (void)updateModuleList:(NSArray *)array;
|
||||
- (void)updateFrameworkList:(NSArray *)array;
|
||||
- (void)updateFinderList:(NSArray *)array;
|
||||
@end
|
||||
|
||||
|
@ -182,6 +183,7 @@ static NSDictionary *dictForDescriptionWithName(NSString *defName)
|
|||
|
||||
[self updateUseList:[def objectForKey:@"Use"]];
|
||||
[self updateModuleList:[def objectForKey:@"Modules"]];
|
||||
[self updateFrameworkList:[def objectForKey:@"Frameworks"]];
|
||||
[self updateFinderList:[def objectForKey:@"Finders"]];
|
||||
[self updateBehavioursFromDictionary:[def objectForKey:@"Behaviours"]];
|
||||
[self updateClassesFromDictionary:[def objectForKey:@"Classes"]];
|
||||
|
@ -233,7 +235,30 @@ static NSDictionary *dictForDescriptionWithName(NSString *defName)
|
|||
}
|
||||
}
|
||||
}
|
||||
- (void)updateFrameworkList:(NSArray *)array
|
||||
{
|
||||
NSEnumerator *enumerator;
|
||||
NSString *str;
|
||||
|
||||
enumerator = [array objectEnumerator];
|
||||
|
||||
while( (str = [enumerator nextObject]) )
|
||||
{
|
||||
if(!frameworks)
|
||||
{
|
||||
frameworks = [[NSMutableArray alloc] init];
|
||||
}
|
||||
|
||||
if( ![frameworks containsObject:str] )
|
||||
{
|
||||
[frameworks addObject:str];
|
||||
}
|
||||
}
|
||||
}
|
||||
- (NSArray *)frameworks
|
||||
{
|
||||
return [NSArray arrayWithArray:frameworks];
|
||||
}
|
||||
- (void)updateFinderList:(NSArray *)array
|
||||
{
|
||||
NSEnumerator *enumerator;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
@class NSArray;
|
||||
@class STEnvironment;
|
||||
|
||||
@interface STScriptObject:NSObject
|
||||
@interface STScriptObject:NSObject<NSCoding>
|
||||
{
|
||||
NSMutableDictionary *ivars;
|
||||
NSMutableDictionary *methodDictionary;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#import "STFunctions.h"
|
||||
|
||||
#import <Foundation/NSArray.h>
|
||||
#import <Foundation/NSCoder.h>
|
||||
#import <Foundation/NSDictionary.h>
|
||||
#import <Foundation/NSException.h>
|
||||
|
||||
|
@ -146,4 +147,22 @@ some other, more clever mechanism. */
|
|||
|
||||
[invocation setReturnValue:&retval];
|
||||
}
|
||||
- (void)encodeWithCoder:(NSCoder *)coder
|
||||
{
|
||||
// [super encodeWithCoder: coder];
|
||||
|
||||
[coder encodeObject:methodDictionary];
|
||||
[coder encodeObject:ivars];
|
||||
}
|
||||
|
||||
- initWithCoder:(NSCoder *)decoder
|
||||
{
|
||||
self = [super init]; //[super initWithCoder: decoder];
|
||||
|
||||
[decoder decodeValueOfObjCType: @encode(id) at: &methodDictionary];
|
||||
[decoder decodeValueOfObjCType: @encode(id) at: &ivars];
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
|
|
@ -80,7 +80,7 @@ extern NSArray *STBytecodeNames;
|
|||
extern NSString *STBytecodeName(unsigned short code);
|
||||
extern NSString *STDissasembleBytecode(STBytecode bytecode);
|
||||
|
||||
@interface STBytecodes:NSData
|
||||
@interface STBytecodes:NSData<NSCoding>
|
||||
{
|
||||
NSData *bytes;
|
||||
}
|
||||
|
|
|
@ -266,5 +266,21 @@ NSString *STDissasembleBytecode(STBytecode bytecode)
|
|||
*pointer,length];
|
||||
return bytecode;
|
||||
}
|
||||
- (void)encodeWithCoder:(NSCoder *)coder
|
||||
{
|
||||
// [super encodeWithCoder: coder];
|
||||
|
||||
[coder encodeObject:bytes];
|
||||
}
|
||||
|
||||
- initWithCoder:(NSCoder *)decoder
|
||||
{
|
||||
self = [super init]; // super initWithCoder: decoder];
|
||||
|
||||
[decoder decodeValueOfObjCType: @encode(id) at: &bytes];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
@class NSMutableArray;
|
||||
@class STBytecodes;
|
||||
|
||||
@interface STCompiledCode:NSObject
|
||||
@interface STCompiledCode:NSObject<NSCoding>
|
||||
{
|
||||
STBytecodes *bytecodes;
|
||||
NSArray *literals;
|
||||
|
|
|
@ -80,4 +80,29 @@
|
|||
{
|
||||
return externRefs;
|
||||
}
|
||||
|
||||
- (void)encodeWithCoder:(NSCoder *)coder
|
||||
{
|
||||
// [super encodeWithCoder: coder];
|
||||
|
||||
[coder encodeObject:bytecodes];
|
||||
[coder encodeObject:literals];
|
||||
[coder encodeObject:externRefs];
|
||||
[coder encodeValueOfObjCType: @encode(short) at: &tempCount];
|
||||
[coder encodeValueOfObjCType: @encode(short) at: &stackSize];
|
||||
}
|
||||
|
||||
- initWithCoder:(NSCoder *)decoder
|
||||
{
|
||||
self = [super init]; // [super initWithCoder: decoder];
|
||||
|
||||
[decoder decodeValueOfObjCType: @encode(id) at: &bytecodes];
|
||||
[decoder decodeValueOfObjCType: @encode(id) at: &literals];
|
||||
[decoder decodeValueOfObjCType: @encode(id) at: &externRefs];
|
||||
[decoder decodeValueOfObjCType: @encode(short) at: &tempCount];
|
||||
[decoder decodeValueOfObjCType: @encode(short) at: &stackSize];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -120,4 +120,22 @@
|
|||
{
|
||||
return @"Smalltalk";
|
||||
}
|
||||
- (void)encodeWithCoder:(NSCoder *)coder
|
||||
{
|
||||
[super encodeWithCoder: coder];
|
||||
|
||||
[coder encodeObject:selector];
|
||||
[coder encodeValueOfObjCType: @encode(short) at: &argCount];
|
||||
}
|
||||
|
||||
- initWithCoder:(NSCoder *)decoder
|
||||
{
|
||||
self = [super initWithCoder: decoder];
|
||||
|
||||
[decoder decodeValueOfObjCType: @encode(id) at: &selector];
|
||||
[decoder decodeValueOfObjCType: @encode(short) at: &argCount];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
Loading…
Reference in a new issue