Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
handle/dataLocation.cpp@6:f0248eb6714d, 2014-04-03 (annotated)
- Committer:
- dylanembed123
- Date:
- Thu Apr 03 16:27:23 2014 +0000
- Revision:
- 6:f0248eb6714d
- Parent:
- 5:eef5ea6a9916
Fix compile errors;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dylanembed123 | 6:f0248eb6714d | 1 | #include "dataLocation.h" |
dylanembed123 | 4:c75d5e5e6bfc | 2 | |
dylanembed123 | 5:eef5ea6a9916 | 3 | DataLocation* LocHolder::get(LHType type){ |
dylanembed123 | 5:eef5ea6a9916 | 4 | if(type==LHType_locs){ |
dylanembed123 | 5:eef5ea6a9916 | 5 | return locs; |
dylanembed123 | 5:eef5ea6a9916 | 6 | }else if(type==LHType_targ){ |
dylanembed123 | 5:eef5ea6a9916 | 7 | return targ; |
dylanembed123 | 5:eef5ea6a9916 | 8 | }else if(type==LHType_base){ |
dylanembed123 | 5:eef5ea6a9916 | 9 | return base; |
dylanembed123 | 5:eef5ea6a9916 | 10 | } |
dylanembed123 | 6:f0248eb6714d | 11 | return base; |
dylanembed123 | 4:c75d5e5e6bfc | 12 | } |
dylanembed123 | 4:c75d5e5e6bfc | 13 | |
dylanembed123 | 6:f0248eb6714d | 14 | unsigned int LocHolder::getRealIndex(LHType type,int index,int offset,bool useSize){ |
dylanembed123 | 6:f0248eb6714d | 15 | return (index+offset)%(useSize?getI(type,LHIType_size):MAXNUMLOCS); |
dylanembed123 | 4:c75d5e5e6bfc | 16 | } |
dylanembed123 | 5:eef5ea6a9916 | 17 | |
dylanembed123 | 6:f0248eb6714d | 18 | DataLocation& LocHolder::getC(LHType type,int offset){ |
dylanembed123 | 6:f0248eb6714d | 19 | return get(type)[getRealIndex(type,offset)]; |
dylanembed123 | 6:f0248eb6714d | 20 | } |
dylanembed123 | 6:f0248eb6714d | 21 | |
dylanembed123 | 6:f0248eb6714d | 22 | unsigned int& LocHolder::getI(LHType type,LHIType indexType){ |
dylanembed123 | 5:eef5ea6a9916 | 23 | if(indexType==LHIType_head){ |
dylanembed123 | 5:eef5ea6a9916 | 24 | // Grab proper header |
dylanembed123 | 5:eef5ea6a9916 | 25 | if(type==LHType_locs){return headLocs;}else if(type==LHType_targ){return headTarg;}else if(type==LHType_base){return headBase;} |
dylanembed123 | 5:eef5ea6a9916 | 26 | }else if(indexType==LHIType_size){ |
dylanembed123 | 5:eef5ea6a9916 | 27 | // Grab proper size |
dylanembed123 | 5:eef5ea6a9916 | 28 | if(type==LHType_locs){return sizeLocs;}else if(type==LHType_targ){return sizeTarg;}else if(type==LHType_base){return sizeBase;} |
dylanembed123 | 5:eef5ea6a9916 | 29 | } |
dylanembed123 | 6:f0248eb6714d | 30 | return headLocs; |
dylanembed123 | 4:c75d5e5e6bfc | 31 | } |
dylanembed123 | 5:eef5ea6a9916 | 32 | |
dylanembed123 | 6:f0248eb6714d | 33 | void LocHolder::inc(LHType type,int amount,bool abs){ |
dylanembed123 | 5:eef5ea6a9916 | 34 | unsigned int& index=getI(type); |
dylanembed123 | 6:f0248eb6714d | 35 | index=getRealIndex(type,(abs?0:index),amount);//((abs?0:index)+amount)%getI(type,LHIType_size); |
dylanembed123 | 5:eef5ea6a9916 | 36 | getI(type)=index; |
dylanembed123 | 6:f0248eb6714d | 37 | } |
dylanembed123 | 6:f0248eb6714d | 38 | |
dylanembed123 | 6:f0248eb6714d | 39 | void LocHolder::add(LHType type,DataLocation newLoc){ |
dylanembed123 | 6:f0248eb6714d | 40 | getI(type)=getI(type,LHIType_size); |
dylanembed123 | 6:f0248eb6714d | 41 | getI(type,LHIType_size)++; |
dylanembed123 | 6:f0248eb6714d | 42 | getC(type)=newLoc; |
dylanembed123 | 5:eef5ea6a9916 | 43 | } |